PHP中4种常用的抓取网络数据方法
本小节的名称为fsockopen,curl与file_get_contents,具体是探讨这三种方式进行网络数据输入输出的一些汇总。关于fsockopen前面已经谈了不少,下面开始转入其它。这里先简单罗列一下一些常见的抓取网络数据的一些方法。
1.用file_get_contents以get方式获取内容:
$url='http://localhost/test2.php'; $html=file_get_contents($url); echo$html;
2.用fopen打开url,以get方式获取内容
$url='http://localhost/test2.php'; $fp=fopen($url,'r'); stream_get_meta_data($fp); $result=''; while(!feof($fp)) { $result.=fgets($fp,1024); } echo"urlbody:$result"; fclose($fp);
3.用file_get_contents函数,以post方式获取url
$data=array( 'foo'=>'bar', 'baz'=>'boom', 'site'=>'www.nhooo.com', 'name'=>'nowamagic'); $data=http_build_query($data); //$postdata=http_build_query($data); $options=array( 'http'=>array( 'method'=>'POST', 'header'=>'Content-type:application/x-www-form-urlencoded', 'content'=>$data //'timeout'=>60*60//超时时间(单位:s) ) ); $url="http://localhost/test2.php"; $context=stream_context_create($options); $result=file_get_contents($url,false,$context); echo$result;
4、使用curl库,使用curl库之前,可能需要查看一下php.ini是否已经打开了curl扩展
$url='http://localhost/test2.php?site=jb51.net'; $ch=curl_init(); $timeout=5; curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); $file_contents=curl_exec($ch); curl_close($ch); echo$file_contents;