2013-06-18 28 views
0

我有不允許的字符一個陣列:檢查消息是否包含錯誤的字符?

$array = ('<php', '<?', '?>', '<h', '<b>'); 

我有一個字符串的消息。 如何檢查,該字符串不包含數組中的任何這些單詞?

基本上,我有一個ajax聊天,當我輸入<b>hello</b>時,它使文本變爲粗體,我不想讓HTML出現,我不知道該怎麼做?

+2

看一看['strip_tags']( http://php.net/strip_tags)。 –

回答

2

你可以使用strip_tags去掉所有的HTML標籤,但是當你輸出HTML,你應該總是使用htmlspecialchars()使任何特殊字符,如><等獲得編碼,因此他們不會對產生任何影響HTML。

順便說一句,黑名單的方法很可能會失敗,如果人們開始例如添加<script>標籤等等?儘管在你輸出到的媒體(html,db等)正確編碼的時候,這似乎不是必須的,但你通常更好的使用白名單方法。

0

您要顯示在網頁上進行XML編碼,什麼...

0

你真的不應該需要剝去這些了。如果你使用htmlspecialchars,那麼你可以將<編碼爲&lt;>作爲&gt;,這樣html就可以正確傳遞,但不會被瀏覽器渲染。

作爲補充:如果您使用jQuery,請記住.text(...)會爲您逃避這些事情。 .html(...)不會。在安全輸出html到瀏覽器時,請使用.text(...)

0

避免使用HTML標籤,你可以使用

$value = htmlentities($value); 

$value = htmlspecialchars($value); 

你也可以使用這兩個功能

$value = htmlspecialchars(htmlentities($value)); 
相關問題