首頁  >  文章  >  後端開發  >  關於PHP中addcslashes與stripcslashes的函數解析

關於PHP中addcslashes與stripcslashes的函數解析

不言
不言原創
2018-06-19 09:53:391342瀏覽

這篇文章主要介紹了PHP中addcslashes與stripcslashes函數用法,結合實例形式分析了addcslashes函數添加針對固定字符的轉義處理與stripcslashes進行還原操作相關技巧,需要的朋友可以參考下

本文實例分析了PHP中addcslashes與stripcslashes函數用法。分享給大家供大家參考,具體如下:

在寫一個網站的英文版時,寫完後填加英文資料,我隨便填寫時一點問題沒有,但每當填加指定的內容時卻填加不上,也不報錯,我查看了資料庫,發現這個欄位用的是“TEXT”資料數型,我以為是內容過長的原因,於是我把資料型別改成了“longtext”,但提交時發現還是出現同樣的問題。下面我們來跟大家介紹一下addcslashes函數吧!

後來請教同事,同事發現在是英文中帶標點「'」的原因,MySQL執行到此處後自動認為語句結束,所以才填加不上。既然找出來了問題那就得找出​​對應的解決方法,那就是在文本內容中的“'”前全部加上轉義字符“\”,正好PHP中提供了自動在字符串中加入或去除轉義字符的函數addcslashes和stripcslashes,於是加上測試後,果然問題解決!由此可見,我平日寫程式時不夠嚴禁,總是會忽略這樣那樣的細節問題,如果被HACKER發現這些問題加一利用,網站基本上OVER了,所以大家一定要引以為戒,不要跟我犯同樣的錯誤哦。

下面簡單介紹這兩個函數的用法:

string addcslashes(string str,string charlist)

第1個參數str為待失物原始字串

第2個參數charlist說明需要在原始字串的哪些字元前加上字元「\」。

string stripcslashes(string str)

去掉字串中的「\」。

另外,使用addslashes函數也可直接針對「'」進行轉義處理。

範例如下:

<?php
$sql = "update book set bookname=&#39;let&#39;s go&#39; where bookid=1";
 echo $sql."<br/>";
 $new_sql = addcslashes($sql,"&#39;");
 echo $new_sql."<br/>";
 $new_sql_01 = stripcslashes($new_sql);
 echo $new_sql_01."<br/>";
 echo addslashes($sql);
?>

執行結果如下:

update book set bookname=&#39;let&#39;s go&#39; where bookid=1
update book set bookname=\&#39;let\&#39;s go\&#39; where bookid=1
update book set bookname=&#39;let&#39;s go&#39; where bookid=1
update book set bookname=\&#39;let\&#39;s go\&#39; where bookid=1

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

關於PHP模板引擎Smarty內建函數section與sectionelse的用法

##如何使用php中ob_start()清除輸出與選擇性輸出

#

以上是關於PHP中addcslashes與stripcslashes的函數解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn