在php中htmlspecialchars, 將特殊字元轉成 html 格式,而htmlentities,將所有的字元都轉成 html 字串 了,下面我來分別簡單的介紹。
htmlentities用法
$str = "john & 'adams'";
echo htmlentities($str, ent_compat);
echo "
"; echo htmlentities($str, ent_quotes);
echo "
"; echo htmlentities($str, ent_noquotes);
?>
john & 'adams'
john & 'adams'
john & 'adams'
瀏覽器輸出:
htmlspecialchars用法
& (和) 轉成 &
" (雙引號) 轉成 "
< (小於) 轉成 <
> (大於) 轉成 >
例$str = "john & 'adams'";
echo htmlspecialchars($str, ent_compat);
echo "
"; echo htmlspecialchars($str, ent_quotes);
echo "
"; echo htmlspecialchars($str, ent_noquotes);
?>
他們的區別
這兩個函式的功能都是轉換字元為html字元編碼,特別是url和**字串。防止字元標記被瀏覽器執行。使用中文時沒什麼區別,但htmlentities會格式化中文字元使得中文輸入是亂碼
htmlentities轉換所有的html標記,htmlspecialchars只格式化& ' " < 和 > 這幾個特殊符號
效果:
$str = '測試頁面';
echo 'htmlentities指定gb2312編碼:'.htmlentities($str,ent_compat,"gb2312").'';
echo 'htmlentities未指定編碼:'.htmlentities($str).'';
$str = '測試頁面';
echo htmlspecialchars($str).'';
listagg 函式導致中文亂碼
1.背景 oracle 12.2c 資料庫匯入到oracle 12.1c 資料庫後,通過listagg的函式中文亂碼,不太清楚是為什麼,兩個資料庫編碼都一樣,表結構與資料都是直接導過來的 現象 listagg p.c name,within group order by p.c name over ...
mbstring擴充套件導致中文亂碼
本文目的 mbstring是php的乙個標準擴充套件,源 在php src ext mbstring中。主要用於處理多位元組編碼的字串,如utf 8,gbk等。php內建的字串處理函式 如strlen等 將字串當作位元組陣列處理,如果直接用來處理中文,可能會導致中文亂碼 中文編碼方式可以參考這篇文章...
修改profile導致Fedora無法登陸
fedora14系統下安裝jdk後配置環境變數時,一時大意,將etc profile檔案配置錯了,導致系統重啟後無法進入登陸介面。裡面安裝的軟體太多,重灌系統工程太大了。一番谷歌之後,發現用單使用者模式 類似於window下的安全模式 登陸後重新修改profile檔案即可,現將過程記錄如下,方便日後...