在php中可以采集遠程頁面的函數有很多,如有file_get_contents(),fopen,file()這些函數都可采集遠程服務器數據,但是要算性能curl最可,他支持支持多線程.
例
代碼如下 復制代碼$curlPost = 'a=1&b=2';//模擬POST數據
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:0.0.0.0', 'CLIENT-IP:0.0.0.0')); //構造IP
curl_setopt($ch, CURLOPT_REFERER, "http://www.bkjia.com/"); //構造來路
curl_setopt($ch,CURLOPT_URL, 'http://www.bkjia.com');//需要抓取的頁面路徑
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);//post值
$file_contents = curl_exec($ch);//抓取的內容放在變量中
curl_close($ch)
還有一種辦法就是使用file_get_contents() 遠程文件獲取函數,用來獲取遠程頁面內容
注意事項
curl()效率挺高的,支持多線程,不過需要開啟下curl擴展。下面是curl擴展開啟的步驟:
1、將PHP文件夾下的三個文件php_curl.dll,libeay32.dll,ssleay32.dll復制到system32下;
2、將php.ini(c:WINDOWS目錄下)中的;extension=php_curl.dll中的分號去掉;
3、重啟apache或者IIS。