php htmlspecialchars()和strip_tags函數都是格式化HTML程式碼的,很多人都以為htmlentities跟htmlspecialchars的功能是一樣的,但是他們真的是一樣的嗎,答案是否定的,不然也不會這兩個函數的,這篇文章就帶大家了解一下php htmlspecialchars()和strip_tags函數的差異
先來看htmlspecialchars函數和strip_tags函數的使用實例:
<?php $str="<a href='http://www.php.cn'>php中文网</a>"; echo htmlspecialchars($str); echo "<br><br>"; echo strip_tags($str); ?>
程式碼執行瀏覽器輸出結果:
查看頁面原始碼,結果如下:
<a href='http://www.php.cn'>php中文网'"</a><br/><br/>php中文网'"
從結果可以看出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函數。
【相關文章推薦】
php中htmlspecialchars、strip_tags、addslashes函數的簡單介紹
php 移除字串標籤strip_tags( ) 函數範例詳解
以上是php htmlspecialchars()和strip_tags函數的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!