2012-07-29 176 views
0

我已经使用构造<img src="http://yoursite.com/image.php?request_id=XXXX"> ,它可以很好地服务可能需要预处理的图像。但是,如果image.php需要大量参数,则src可能变得非常笨拙。因此,我想将image.php封装到一个函数中,并将它打包到我的内容页面include_once "image.php"通过PHP函数提供图像src

但是,该策略会产生令人畏惧的“无法修改标题信息”错误。我相信这是因为在img被引用之前页面上已经有输出。这是否意味着通过函数输出图像src是不可能的,而不是通过GET单独的文件?

+1

这不是完全不可能的,但由于许多原因,它是不可取的。但是,例如,您可以将所有参数存储在会话变量中。 – 2012-07-29 10:19:09

回答

1

这不起作用,因为您在一个响应中发送两种不同类型的内容,一种是text/html,另一种是image/jpeg。这里是我的建议:有一个函数接受所有需要渲染图像的参数,并将此函数保存在磁盘的某处(例如缓存/图像),函数应该返回此图像的路径,以便您可以它在你的src。

+0

我有这样的概念,你有很长一段时间,问题是:你总是渲染图像的请求,而不是服务已经渲染的一个。由于这是一个CPU和MEM密集型操作,因此您也可以对可能完全耗尽您的硬件资源的攻击进行恶化。 – 2012-07-29 10:35:02