2013-08-07 49 views
0

由於某些原因,PHP的strig_tags()函數將從顯式允許的標籤中移除括號,當這些標籤出現在屬性中時。strip_tags在屬性內刪除允許的標籤

例子:

<div data-contents="<p>Hello!</p>"></div> 

成爲

<div data-contents="pHello!/p"></div> 

我知道,我知道。這不一定是好的做法。

無論有什麼想法?

+3

將HTML嵌入屬性值並不一定是好習慣。所以...當你有無數更好的方法時,你爲什麼要這樣做呢?只是好奇。而且,爲什麼你在這種情況下使用strip_tags呢? –

回答

2

由於在man page狀態的警告:**Because strip_tags() does not actually validate the HTML, partial or broken tags can result in the removal of more text/data than expected.

如果你希望嵌入屬性在HTML裏面,必須正確編碼,例如您應該有&lt;p&gt;Hello!&lt;/p&gt;

條形標籤是「啞」,它將刪除任何類似標籤的內容,而不管標籤在文本中出現的位置,或者它會導致頁面破損。

+0

這正是。如果你使用'strip_tags'的原因是不允許某些形式的HTML,那麼我寧願建議你使用一個庫,比如AntiSamy(不知道是否有PHP端口/等價物) –