本文实例讲述了PHP使用socket发送HTTP请求的方法。分享给大家供大家参考,具体如下:
socket方式
:20,"usec"=>0));
socket_connect($socket,'www.baidu.com',80);
//里面的换行代表 \r\n 注意拷贝的代码后面可能有空格
$http = <<
fsockopen方式
:PHP;">
$fp = fsockopen("www.baidu.com",80,$errno,$errstr,30);
if (!$fp) {
echo "$errstr ($errno)
\n"; } else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: www.baidu.com\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp,$http); while (!feof($fp)) { echo fgets($fp,128); } fclose($fp); }
\n"; } else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: www.baidu.com\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp,$http); while (!feof($fp)) { echo fgets($fp,128); } fclose($fp); }
原始socket方式
:PHP;">
$fp = stream_socket_client("tcp://www.baidu.com:80",30);
if (!$fp) {
echo "$errstr ($errno)
\n"; } else { $http = <<
\n"; } else { $http = <<
stream 方式(get):
PHP;">
$http = <<array(
'header' => $http,'timeout'=>1,//超时 秒
'method' => 'GET',//默认方式
'protocol_version' => '1.1',//默认为 1.0
),);
//参数格式参考 http://PHP.net/manual/zh/context.http.PHP
//curl方式的格式可以参考; http://PHP.net/manual/zh/context.curl.PHP
$context = stream_context_create($hdrs);
echo file_get_contents('http://www.baidu.com',$context);
stream 方式 post
:'save','id'=>387171));
$http = <<array(
'header' => $http,//超时 秒
'method' => 'POST','content' => $postdata, 'protocol_version' => '1.1',);
//参数格式参考 http://PHP.net/manual/zh/context.http.PHP
//curl方式的格式可以参考; http://PHP.net/manual/zh/context.curl.PHP
$context = stream_context_create($hdrs);
echo file_get_contents('http://test.cm/song.PHP',$context);
注意:http1.1 中必须包含 Host 头, 而 http1.0中则可以没有
更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。