我有不允許的字符一個陣列:檢查消息是否包含錯誤的字符?
$array = ('<php', '<?', '?>', '<h', '<b>');
我有一個字符串的消息。 如何檢查,該字符串不包含數組中的任何這些單詞?
基本上,我有一個ajax聊天,當我輸入<b>hello</b>
時,它使文本變爲粗體,我不想讓HTML出現,我不知道該怎麼做?
我有不允許的字符一個陣列:檢查消息是否包含錯誤的字符?
$array = ('<php', '<?', '?>', '<h', '<b>');
我有一個字符串的消息。 如何檢查,該字符串不包含數組中的任何這些單詞?
基本上,我有一個ajax聊天,當我輸入<b>hello</b>
時,它使文本變爲粗體,我不想讓HTML出現,我不知道該怎麼做?
你可以使用strip_tags
去掉所有的HTML標籤,但是當你輸出HTML,你應該總是使用htmlspecialchars()
使任何特殊字符,如>
,<
等獲得編碼,因此他們不會對產生任何影響HTML。
順便說一句,黑名單的方法很可能會失敗,如果人們開始例如添加<script>
標籤等等?儘管在你輸出到的媒體(html,db等)正確編碼的時候,這似乎不是必須的,但你通常更好的使用白名單方法。
您要顯示在網頁上進行XML編碼,什麼...
你真的不應該需要剝去這些了。如果你使用htmlspecialchars
,那麼你可以將<
編碼爲<
和>
作爲>
,這樣html就可以正確傳遞,但不會被瀏覽器渲染。
作爲補充:如果您使用jQuery,請記住.text(...)
會爲您逃避這些事情。 .html(...)
不會。在安全輸出html到瀏覽器時,請使用.text(...)
。
避免使用HTML標籤,你可以使用
$value = htmlentities($value);
或
$value = htmlspecialchars($value);
你也可以使用這兩個功能
$value = htmlspecialchars(htmlentities($value));
看一看['strip_tags']( http://php.net/strip_tags)。 –