使用PHP代理图像

时间:2014-02-03 20:41:04

标签: php ssl

我有一个通过HTTPS运行的Web应用程序,但我们正在不支持SSL的服务器上加载外部映像。出于这个原因,我们需要通过PHP脚本代理所有外部图像,以便可以通过SSL加载它们。

我尝试了following,但我得到“图片无法显示,因为它包含错误。”。

$remoteImage = "http://www.blog.qarea.com/wp-content/uploads/2012/01/code.jpg";
$imginfo = getimagesize($remoteImage);
header("Content-type: ".$imginfo['mime']);
readfile($remoteImage);

关于我哪里出错的任何想法?

更多信息:请求的内容长度与原始图像的大小相匹配。 更新:我只是在一个独立的文件中尝试了脚本,它工作正常。看起来这是Zend Framework的一个问题。现在我只需要调试它,任何输入都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

你真的需要PHP来代理请求吗?最简单的解决方案是使用您的网络服务器的代理模块,这也带来了最佳性能。

请参阅ApacheNginx的文档。

答案 1 :(得分:0)

<?php标记之前是否有空格或换行符?如果是这样会导致图像无效。

此外,如果您有?>关闭代码(没有意义),请确保之后没有空格/换行符。