原文地址:http://www.manongjc.com/article/1103.html
先來看一下htmlspecialchars函數和strip_tags函數的使用實例:
<?php $str="<a href='http://www.manongjc.com'>碼農教程'\"</a>"; echo htmlspecialchars($str); echo "<br/><br/>"; echo strip_tags($str); ?>
浏覽器輸出如下結果:
<a href='http://www.manongjc.com'>碼農教程'"</a> 碼農教程'"
查看頁面源碼,結果如下:
<a href='http://www.manongjc.com'>碼農教程'"</a><br/><br/>碼農教程'"
從結果可以看出htmlspecialchars() 和strip_tags的區別如下:
區別一:
strip_tags函數使用來去除HTML標簽的,而htmlspecialchars並沒有去除html標簽,只是把標簽轉換為HTML實例,所以二者之間最大的區別是一個是刪除掉HTML標簽,一個是將html標簽轉換為其他字符。
區別二:
如果需要去除HTML標簽的字符串裡面的標簽原來就有錯,例如少了大於的符號,在使用strip_tags函數會傳回錯誤,而htmlspecialchars不會有錯誤出現,依然後轉換為HTML實體。
區別三:
在防止XSS攻擊時,一般建議使用htmlspecialchars函數,因為strip_tags雖然可以刪除HTML標簽,但是它不會刪除"或'。因此就算你使用了
strip_tags,仍然需要使用htmlspecialchars函數來過濾掉"或'
在表單提交或用戶留言板裡,如果你希望數據原始輸出帶浏覽器,那麼請使用htmlspecialchars函數,不要使用strip_tags函數。
關於htmlspecialchars() 和strip_tags函數請參考閱讀:
http://www.manongjc.com/article/1213.html
http://www.manongjc.com/article/1099.html
http://www.manongjc.com/article/795.html