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編碼
新聞熱點
疑難解答