PHP采集(远程抓取) 自定义函数
在采集的时候,我们经常用到file_get_contents或CURL在写代码的时候,或者大家经常遇到问题,反复的调试,下面我自己写了一个函数,可以节省时间,这也是我自己用的,送给大家交流
/*
* 远程抓取数据函数
*
* $url 远程URL地址 必选
* $way 1为file_get_contents抓取 2为CURL抓取 默认为1 可留空
* $$coding 编码 1为UTF-8转GBK 1为GBK转UTF-8 留空为不转换
*
* 作者: 小曾 QQ839024615 欢迎加我一起交流!
*
*/
function GetFile($url,$way=1,$coding){
if($way==1){
$str=file_get_contents($url);
}else if($way==2){
@$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_NOBODY,false);
curl_setopt($ch,CURLOPT_TIMEOUT,3);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
curl_setopt($ch,CURLOPT_MAXREDIRS,20);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.0)");
$orders=@curl_exec($ch);
@curl_close($ch);
$str=$orders;
}
if($coding=="1"){
$str=iconv("UTF-8", "GBK", $str);
}elseif ($coding=="2"){
$str=iconv("GBK", "UTF-8", $str);
}
return $str;
}
//使用方法
echo GetFile("http://www.thinkphp.cn",2,1); //采集thinkphp官网 CURL 转GBK编码