2012-07-29 177 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