Esempio n. 1
0
 /**
  * 
  * @param type $url
  * @param array $params
  */
 public static function postAsync($url, $params, array $posts)
 {
     foreach ($posts as $key => &$val) {
         if (is_array($val)) {
             $val = implode(',', $val);
         }
         $post_params[] = $key . '=' . urlencode($val);
     }
     $post_string = implode('&', $post_params);
     $parts = parse_url($url);
     if (isset($parts['scheme']) && $parts['scheme'] == 'https') {
         $protocol = 'ssl://';
         $default_port = 443;
     } else {
         $protocol = '';
         $default_port = 80;
     }
     $fp = fsockopen($protocol . $parts['host'], isset($parts['port']) ? $parts['port'] : $default_port, $errno, $errstr, 1);
     if (!$fp) {
         JchOptimizeLogger::log($errno . ': ' . $errstr, $params);
     } else {
         $out = "POST " . $parts['path'] . '?' . $parts['query'] . " HTTP/1.1\r\n";
         $out .= "Host: " . $parts['host'] . "\r\n";
         $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
         $out .= "Content-Length: " . strlen($post_string) . "\r\n";
         $out .= "Connection: Close\r\n\r\n";
         if (isset($post_string)) {
             $out .= $post_string;
         }
         JchOptimizeLogger::debug($out, 'out');
         fwrite($fp, $out);
         fclose($fp);
     }
 }