【发布时间】:2014-03-25 04:09:48
【问题描述】:
我正在通过 URL 从外部来源检索图像并将其保存到我的网络服务器。不幸的是,有时我会收到以下错误:无法打开流:HTTP 请求失败! HTTP/1.1 500 内部服务器错误。
当我使用浏览器访问给定的 url 时,图像会显示并且有效。网址:
http://****.com/00/s/NTgwWDcyNg==/z/7LEAAMXQVT9TCcxx/$_85.JPG
我使用的代码:
$opts = array('http'=>array('header' => "User-Agent:Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.75 Safari/537.1\r\n", 'timeout' => "360"));
$context = stream_context_create($opts);
$imageString = file_get_contents(urldecode(urlencode($filename)), false, $context);
$save = file_put_contents(dirname(dirname(__FILE__)) . '/tmp/' . $id . '_' . $sequenceNumber . '.jpg', $imageString);
有人知道为什么我会收到 500 错误吗?
【问题讨论】:
-
什么是 urlencode 和 urldecode ?
-
我已经用 phpfiddle 测试了另一个图像 url,它也给出了 500 错误,我已经修复了 urlencode/urldecode。在phpfiddle中处理这个url时,我得到了一个无法解析的主机,在file_get_contents之前用@修复。但是@是什么?
标签: php image file-get-contents urlencode