PHP采集(远程抓取) 自定义函数

jerry thinkphp 2015年11月19日 收藏
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编码