2014-10-03 46 views
0

我有以下PHP腳本,可以在99%的時間內完美工作。但它不會從這臺我認爲運行Varnish Cache的服務器下載映像。cURL無法從運行Varnish Cache的服務器上下載映像文件

<?php 

$imglink = 'http://www.dirtrider.com/wp-content/uploads/2014/10/WD-10_1_14-001.jpg'; 

$ch = curl_init($imglink); 
$fp = fopen('/home/path/www/tmp/test.jpg', "w"); 

curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_TIMEOUT, 5); 

curl_exec($ch); 

fclose($fp); 

回答

1

如果使用CURL加載該映像,則會出現一個403 Forbidden錯誤。你可以很容易地解決這個錯誤。只需爲您的CURL請求添加替代用戶代理:

curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 

And et瞧!它像一個魅力。看起來像Varnishe Cache阻止使用CURL默認用戶代理的CURL請求。