2014-10-03 45 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请求。