2010年10月22日

[PHP] stripslashes 反斜線去除


語法:string stripslashes(string str)
說明:傳回去除反斜線後的字串,連續的兩個反斜線會成為一個反斜線




一般用php程式寫在本文中為了安全和編碼相容性
會使用htmlspecialchars將特殊字元轉換特殊字元成為html實體
並且將跳脫字元(逃脫字元)避免掉
自動加上反斜線,以利資料庫正確安全的寫入和讀取

**********************************************************************************************************
中文字是由兩個字元所組成,第一個字元大於ASCII127,第二個字元則不限。而ASCII92 [ \ ] 在一些程式語言中(如C、PHP) 被當成跳脫字元,像$str="學習\"PHP\"程式設計";如果當中文字中第二個字元若為ASCII92時,如許、蓋、功、餐等就會發生問題,PHP遇到ASC92會加上\ (視php.ini中的magic_quotes_gpc設定值) 當要新曾紀錄時會得到
mycmd = "insert into tabname (title) values ('許\成功\') "; (就會發生SQL語法錯誤)
**********************************************************************************************************


但是如果只需使用一般文件之間的寫入和讀取時,則無須這樣的程序
反而會在每次寫入本文時增加一個反斜線 \
而每一次編輯就會增加一個 \ 越來越多....越來越多...像這樣\\\\\\\\\\
如果遇到這樣的問題,只要將htmlspecialchars 用 stripslashes代替掉即可


沒有留言:

張貼留言