PHP中htmlentities和htmlspecialchars的区别
生活随笔
收集整理的這篇文章主要介紹了
PHP中htmlentities和htmlspecialchars的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用函數?htmlentities 后使中文變亂碼,以至數據存到數據庫全部是亂碼。一直以為是MYSQL字符集設置問題,花了兩天時間才找到原因。使用htmlspecialchars既可解決問題。
這兩個函數的功能都是轉換字符為HTML字符編碼,特別是url和代碼字符串。防止字符標記被瀏覽器執行。使用中文時沒什么區別,但htmlentities會格式化中文字符使得中文輸入是亂碼
htmlentities轉換所有的html標記,htmlspecialchars只格式化& ' " < 和 > 這幾個特殊符號
?
$str = '<a href="demo.php?m=index&a=index&name=中文">測試頁面</a>';echo 'htmlentities指定GB2312編碼:'.htmlentities($str,ENT_COMPAT,"GB2312").'';
echo 'htmlentities未指定編碼:'.htmlentities($str).'';
$str = '<a href="demo.php?m=index&a=index&name=中文">測試頁面</a>';
echo htmlspecialchars($str).'';
效果:
htmlentities指定GB2312編碼:<a href="demo.php?m=index&a=index&name=中文">測試頁面</a>
htmlentities未指定編碼:<a href="demo.php?m=index&a=index&name=?D??">2aê?ò3??</a>
<a href="demo.php?m=index&a=index&name=中文">測試頁面</a>
?
源代碼:
htmlentities指定GB2312編碼:<a href="demo.php?m=index&a=index&name=中文">測試頁面</a><br/>htmlentities未指定編碼:<a href="demo.php?m=index&a=index&name=ÖÐÎÄ">²âÊÔÒ³Ãæ</a><br/><a href="demo.php?m=index&a=index&name=中文">測試頁面</a><br/>總結
以上是生活随笔為你收集整理的PHP中htmlentities和htmlspecialchars的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL无法存储中文问题
- 下一篇: Win下PHP环境Eclipse PDT