本文实例讲述了php使用fsockopen函数发送post,get请求获取网页内容的方法。分享给大家供大家参考。
具体实现代码如下:
代码如下:
$post =1;
$url = parse_url($url);
$host ='http://www.bitscn.com';
$path ='/';
$query ='?action=phpfensi.com';
$port =80;
if($post) {
$out = post $path http/1.0 ;
$out .= accept: */* ;
//$out .= referer: $boardurl ;
$out .= accept-language: zh-cn ;
$out .= content-type: application/x-www-form-urlencoded ;
$out .= user-agent: $_server[http_user_agent] ;
$out .= host: $host ;
$out .= 'content-length: '.strlen($post). ;
$out .= connection: close ;
$out .= cache-control: no-cache ;
$out .= cookie: $cookie ;
$out .= $post;
} else {
$out = get $path http/1.0 ;
$out .= accept: */* ;
//$out .= referer: $boardurl ;
$out .= accept-language: zh-cn ;
$out .= user-agent: $_server[http_user_agent] ;
$out .= host: $host ;
$out .= connection: close ;
$out .= cookie: $cookie ;
}
$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
if(!$fp)
{
return '';//note $errstr : $errno
} else {
return '成功访问';
}
fsockopen语法: 代码如下:
resource fsockopen(string $hostname [,int $port = -1 [, int &$errno [,string &$errstr [, float $timeout = ini_get(default_socket_timeout) ]]]] )
启动一个套接字连接到指定的主机的资源,php支持在互联网领域的目标和unix在所支持的套接字传输列表说明,所支持的传输列表也可以检索使用stream_get_transports().
该插座预设会被启用,阻塞模式,你可以切换到非阻塞模式使用stream_set_blocking(),如果上面实例看不懂,就来看个简的吧,代码如下:
代码如下:
$fp = fsockopen(www.bitscn.com, 80, $errno, $errstr, 30);
if (!$fp) {
echo $errstr ($errno) ;
} else {
$out = get / http/1.1 ;
$out .= host: www.bitscn.com;
$out .= connection: close ;
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
希望本文所述对大家的php程序设计有所帮助。