原文網址:http://www.manongjc.com/article/1103.html
先來看看htmlspecialchars函數和strip_tags函數的使用實例:
<?<span style="color: #000000;">php </span><span style="color: #800080;">$str</span>="<a href='http://www.manongjc.com'>码农教程'\"</a>"<span style="color: #000000;">; </span><span style="color: #0000ff;">echo</span> <span style="color: #008080;">htmlspecialchars</span>(<span style="color: #800080;">$str</span><span style="color: #000000;">); </span><span style="color: #0000ff;">echo</span> "<br/><br/>"<span style="color: #000000;">; </span><span style="color: #0000ff;">echo</span> <span style="color: #008080;">strip_tags</span>(<span style="color: #800080;">$str</span><span style="color: #000000;">); </span>?>
瀏覽器輸出如下結果:
<a href='http://www.manongjc.com'>码农教程'<span style="color: #000000;">"</a> 码农教程</span>'"
查看頁面來源碼,結果如下:
<span style="color: #0000ff;"><</span><span style="color: #800000;">a </span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">='http://www.manongjc.com'</span><span style="color: #0000ff;">></span>码农教程'"<span style="color: #0000ff;"></</span><span style="color: #800000;">a</span><span style="color: #0000ff;">><</span><span style="color: #800000;">br</span><span style="color: #0000ff;">/><</span><span style="color: #800000;">br</span><span style="color: #0000ff;">/></span>码农教程'"
從結果可以看出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