php使用socket post数据到其它web服务器的方法

本文实例讲述了php使用socket post数据到其它web服务器的方法。分享给大家供大家参考。具体实现方法如下:

  function post_request($url, $data, $referer='') {    // Convert the data array into URL Parameters like a=b&foo=bar etc.    $data = http_build_query($data);    // parse the given URL    $url = parse_url($url);    if ($url['scheme'] != 'http') {       die('Error: Only HTTP request are supported !');    }    // extract host and path:    $host = $url['host'];    $path = $url['path'];    // open a socket connection on port 80 - timeout: 30 sec    $fp = fsockopen($host, 80, $errno, $errstr, 30);    if ($fp){      // send the request headers:      fputs($fp, "POST $path HTTP/1.1rn");      fputs($fp, "Host: $hostrn");      if ($referer != '')        fputs($fp, "Referer: $refererrn");      fputs($fp, "Content-type: application/x-www-form-urlencodedrn");      fputs($fp, "Content-length: ". strlen($data) ."rn");      fputs($fp, "Connection: closernrn");      fputs($fp, $data);      $result = '';       while(!feof($fp)) {        // receive the results of the request        $result .= fgets($fp, 128);      }    }    else {       return array(        'status' => 'err',         'error' => "$errstr ($errno)"      );    }    // close the socket connection:    fclose($fp);    // split the result header from the content    $result = explode("rnrn", $result, 2);    $header = isset($result[0]) ? $result[0] : '';    $content = isset($result[1]) ? $result[1] : '';    // return as structured array:    return array(      'status' => 'ok',      'header' => $header,      'content' => $content    );  }  //使用方法  // Submit those variables to the server  $post_data = array(    'test' => 'foobar',    'okay' => 'yes',    'number' => 2  );  // Send a request to example.com   $result = post_request('http://www.example.com/', $post_data);  if ($result['status'] == 'ok'){    // Print headers     echo $result['header'];     echo '<hr />';    // print the result of the whole request:    echo $result['content'];  }  else {    echo 'A error occured: ' . $result['error'];   }    

希望本文所述对大家的php程序设计有所帮助。

php使用socket post数据到其它web服务器的方法

郑重声明:本网站发布的内容(图片、视频和文字)以及用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服

发表评论

登录后才能评论