$value) { $xml .= self::_valueXml($elem, $value); } return $xml; } return "<" . $element . ">" . $value . "" . $nl; } /** * @param $xml * @param string $name * * @return mixed */ public static function _xmlElement($xml, $name) { $value = preg_replace('/.*<' . $name . '[^>]*>(.*)<\/' . $name . '>.*/', '\1', $xml); return $value; } /** * @param $xml * @param string $name * * @return mixed|null */ public static function _xmlAttribute($xml, $name) { $value = preg_replace('/<.*' . $name . '="([^"]*)".*>/', '\1', $xml); return $value != $xml ? $value : NULL; } /** * @param $query * @param $url * * @return resource */ public static function &_initCURL($query, $url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_FRESH_CONNECT, TRUE); curl_setopt($curl, CURLOPT_POST, TRUE); curl_setopt($curl, CURLOPT_POSTFIELDS, $query); curl_setopt($curl, CURLOPT_TIMEOUT, 30); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); if (ini_get('open_basedir') == '' && ini_get('safe_mode') == 'Off') { curl_setopt($curl, CURLOPT_FOLLOWLOCATION, FALSE); } curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_SSLVERSION, 0); if (strtoupper(substr(@php_uname('s'), 0, 3)) === 'WIN') { curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, 'verifySSL')); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, 'verifySSL') ? 2 : 0); } return $curl; } }