我查了其他类似的问题,这个案子似乎有所不同。
我有这个简单的代码:
$src='http://www.fattal.co.il/Octopus/Upload/Images/Pages/thumbs/magic-sunrise-club-eilat-youth-club_thumb.jpg';
$opts = array(
'http'=>array(
'method'=>"GET",
'user_agent' => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0'
)
);
$context = stream_context_create($opts);
$data= file_get_contents( $src, false, $context, -1, 1500000);
echo strlen ($data);
在我的开发者电脑上,它打印出8861 - 图像的实际大小。在linux ubuntu生产服务器上,它带来了一些从网站加载javascript的HTML代码(打印的大小为549字节)。
这两个框从其他网站上很好地获取图像。因此包装似乎已经到位。此问题特定于示例中的站点。 我尝试模拟具有许多标头变体的服务器。包含浏览器将发送的所有可能标头。这没什么区别。
我尝试从其他生产服务器排除图像服务器通过IP阻止它。
这两个框有allow_url_fopen开。
我还能检查什么才能理解为什么它不能在生产服务器上运行?
答案 0 :(得分:1)
只是一个想法,我用FireFox加载文件并使用Modify Headers扩展来过滤Host参数。它返回了一个与您的大小相似的错误。尝试将Host标头集添加到www.fattal.co.il。看看是否有效
答案 1 :(得分:0)
显然原因是网站使用的重新启动安全平台。我们只需要白名单。
谢谢!