在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://m.survivalescaperooms.com/"); //構造來路
- curl_setopt($ch,CURLOPT_URL, 'http://m.survivalescaperooms.com');//需要抓取的頁面路徑
- curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt ($ch, CURLOPT_TIMEOUT, 30);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);//post值
- //開源代碼Vevb.com
- $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.
新聞熱點
疑難解答