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程序设计有所帮助。