2016-11-19 43 views
2

我想保存指定的網站到服務器。沒有結果試過file_get_contents,最後得到CURL。一些研究和測試結果後:無法克服的網站瀏覽器檢查與PHP捲曲

$header=array('GET /1575051 HTTP/1.1', 
'Host: shakes.pro', 
'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
'Accept-Language:en-US,en;q=0.8', 
'Cache-Control:max-age=0', 
'Connection:keep-alive', 
'User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36', 
); 
set_time_limit(0); 
$fp = fopen ('./a.xml', 'w+'); 
$ch = curl_init('http://shakes.pro/'); 
$agent= 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36'; 

curl_setopt($ch, CURLOPT_HTTPHEADER,$header); 
curl_setopt($ch, CURLOPT_TIMEOUT, 50); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,0); 
curl_setopt($ch, CURLOPT_HTTPHEADER,$header); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_VERBOSE, true); 
curl_setopt($ch, CURLOPT_USERAGENT, $agent); 

curl_exec($ch); 
curl_close($ch); 
fclose($fp); 

作品與我都檢查過了其他網站,但是這一次我需要:) 測試了幾個不同的服務器,同樣的結果 任何想法?

+0

也許是因爲'set_time_limit'設置爲0,但我必須說,我不熟悉PHP的:) – georoot

+0

的libcurl我認爲該網站有周期會被重定向。嘗試將其打開到瀏覽器。我沒有成功的迴應。如果你想把它保存到CURLOPT_FILE中,則移除CURLOPT_RETURNTRANSFER標誌。用set_time_limit玩 – Wizard

+0

沒有給出任何結果。 – SpinLD

回答

0

如果目標網站無法找到自己的Cookie,它將重定向您。在這裏,對我的作品的代碼:

<?php 
$header=array(
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
    'Accept-Language: en-US,en;q=0.8', 
    'Cache-Control: max-age=0', 
    'Connection: keep-alive', 
); 
$fp = fopen ('./a.xml', 'w+'); 
$ch = curl_init(); 
$agent= 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36'; 

curl_setopt($ch, CURLOPT_URL, 'http://shakes.pro/1575051'); 
curl_setopt($ch, CURLOPT_AUTOREFERER, false); 
curl_setopt($ch, CURLOPT_MAXREDIRS, 5); 
curl_setopt($ch, CURLOPT_HTTPHEADER,$header); 
curl_setopt($ch, CURLOPT_TIMEOUT, 50); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

// this line added for cookies while =307 
curl_setopt($ch, CURLOPT_COOKIEJAR, './a.cookiejar'); 

// if this line enabled, you'll get the result into $result 
//curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); 

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($ch, CURLOPT_VERBOSE, true); 
curl_setopt($ch, CURLOPT_USERAGENT, $agent); 

$result = curl_exec($ch); 
curl_close($ch); 
fclose($fp); 
+0

謝謝精靈,你救了我的一天!像魅力一樣工作! – SpinLD