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