php使用fsockopen函数发送post,get请求获取网页内容的方法 |
本文实例讲述了php使用fsockopen函数发送post,get请求获取网页内容的方法 。分享给大家供大家参考 。 具体实现代码如下: 复制代码 代码如下: $post =1; $url = parse_url($url); $host =http://www.jb51.net; $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.jb51.net", 80, $errno, $errstr, 30);
if (!$fp) { echo "$errstr ($errno) "; } else { $out = "get / http/1.1 "; $out .= "host: www.jb51.net"; $out .= "connection: close "; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } 希望本文所述对大家的PHP程序设计有所帮助 。 |