2012-02-23 20 views
0

Im對解碼來自數據庫的數據有點問題。Zend在填充表格上解碼數據

我的數據以utf8的形式存儲在數據庫中,對於這個實例,數據是'corrosion & time',存儲爲'corrosion & time'。現在我想用此數據填充表單的一個字段,該字段應用了htmlSpecialChars過濾器。

當在瀏覽器中查看我看到: 「腐蝕&時間」

如果我使用html_entity_decode我得到: 「腐蝕$amp;時間」

,如果我還從形式,我取下過濾器然後得到: '腐蝕&時間'

是否有反正我可以填寫表單,而無需從字段中刪除過濾器?

回答

0

在填充表單之前,您將不得不對數據進行解碼,因此在調用getValues()時,不應將該過濾器應用於來自表單的數據,直到它被髮布,這將重新應用過濾器。

如果您知道您使用了htmlspecialchars來對數據進行編碼,請使用htmlspecialchars_decode來解碼數據。

Description 

string htmlspecialchars_decode (string $string [, int $quote_style = ENT_COMPAT ]) 

This function is the opposite of htmlspecialchars(). It converts special HTML entities back to characters. 

The converted entities are: &, " (when ENT_NOQUOTES is not set), ' (when ENT_QUOTES is set), < and >.