function request($request_url)
 {
     $results = false;
     $request_url = $this->get_adjusted_request_url($request_url);
     $this->adjust_post_data();
     $this->disable_error_reporting();
     $icanSnoopy = new IcanSnoopy();
     if (!is_readable($icanSnoopy->curl_path) || !is_executable($icanSnoopy->curl_path)) {
         $icanSnoopy->curl_path = '/usr/bin/curl';
     }
     $this->reset_error_reporting();
     $icanSnoopy->_fp_timeout = 3;
     $icanSnoopy->read_timeout = 5;
     if ('GET' === $this->method) {
         $icanSnoopy->fetch($request_url);
     } else {
         $icanSnoopy->set_submit_multipart();
         $icanSnoopy->submit($request_url, $this->post_data, $this->post_files);
     }
     if ($icanSnoopy->error || $icanSnoopy->timed_out) {
         $this->error = $icanSnoopy->error;
     } else {
         if ($this->gzipped) {
             $icanSnoopy->results = $this->gzdecode($icanSnoopy->results);
         }
         $results = icl_xml2array($icanSnoopy->results, 1);
         if (array_key_exists('info', $results) && '-1' === $results['info']['status']['attr']['err_code']) {
             $this->error = $results['info']['status']['value'];
             $results = false;
         }
     }
     return $results;
 }
Пример #2
0
 function _request($request, $method = 'GET', $formvars = null, $formfiles = null, $gzipped = false)
 {
     global $sitepress_settings, $sitepress;
     $request = str_replace(" ", "%20", $request);
     $c = new IcanSnoopy();
     $debugvars = array('debug_cms' => 'WordPress', 'debug_module' => 'WPML ' . ICL_SITEPRESS_VERSION, 'debug_url' => get_bloginfo('url'));
     if ($method == 'GET') {
         $request .= '&' . http_build_query($debugvars);
     } else {
         $formvars += $debugvars;
     }
     // disable error reporting
     // needed for open_basedir restrictions (is_readable)
     $_display_errors = ini_get('display_errors');
     $_error_reporting = ini_get('error_reporting');
     ini_set('display_errors', '0');
     ini_set('error_reporting', 0);
     if (!@is_readable($c->curl_path) || !@is_executable($c->curl_path)) {
         $c->curl_path = '/usr/bin/curl';
     }
     // restore error reporting
     // needed for open_basedir restrictions
     ini_set('display_errors', $_display_errors);
     ini_set('error_reporting', $_error_reporting);
     $c->_fp_timeout = 3;
     $c->read_timeout = 5;
     $url_parts = parse_url($request);
     if ($sitepress_settings['troubleshooting_options']['http_communication']) {
         $request = str_replace('https://', 'http://', $request);
     }
     if ($method == 'GET') {
         $c->fetch($request);
         if ($c->timed_out) {
             die(__('Error:', 'sitepress') . $c->error);
         }
     } else {
         $c->set_submit_multipart();
         $c->submit($request, $formvars, $formfiles);
         if ($c->timed_out) {
             die(__('Error:', 'sitepress') . $c->error);
         }
     }
     if ($c->error) {
         $this->error = $c->error;
         return false;
     }
     if ($gzipped) {
         $c->results = $this->_gzdecode($c->results);
     }
     $results = icl_xml2array($c->results, 1);
     if (isset($results['info']) && $results['info']['status']['attr']['err_code'] == '-1') {
         $this->error = $results['info']['status']['value'];
         return false;
     }
     return $results;
 }