1.在表單中,input項,如果用戶輸入的是英文狀態下的雙引號或單引號,數據保存后。以后又在后台編輯的時候,<input value=" "這是帶引號的值,因為引號導致問題" " ...>因為雙引號或單引號的原因,發現數據“丟失”。
2.因此要將輸入數據中引號變成html實體。
3.怎么變?答曰:htmlentities或者htmlspecialchars
根據PHP手冊來看,htmlentities或者htmlspecialchars幾乎一樣,而我使用中發現,字符串中有法文等用htmlentities會被轉為html實體,用htmlspecialchars不會,而html實體除了<>&' " 沒必要轉換,所以最好用htmlspecialchars
//php 5.2.6 $text = trim($text);//去除數據頭尾空格 //$text = strip_tags($text); //去掉html標簽,根據情況決定是否用此 $text = htmlentities($text,ENT_QUOTES);//單引號,雙引號都轉化
4.發現出來的數據是亂碼!
5.原來,雖然htmlentities是默認UTF-8,但是還是要加上。
$text = trim($text); //$text = strip_tags($text); $text = htmlentities($text,ENT_QUOTES,"UTF-8");
6.嗯,正常了,英文雙引號變成了" <變成了<等
7.對用戶數據再次編輯的時候,直接從數據庫讀出來,塞給input的value即可,不需要轉碼處理之后再塞給input。