PHP程式在引號前自動加反斜槓的原因與處理辦法

2021-07-09 15:30:47 字數 833 閱讀 2287

在為wordpress後台新增統計**控制功能時,發現凡是提交到資料庫的內容中只要是帶有單引號或者雙引號的內容時,後面都會增加乙個反斜槓。而且每儲存一次增加乙個反斜槓,很是鬱悶。

從網上搜了一下原來是php程式為了防止注入或者溢位,通過php 指令 magic_quotes_gpc自動在雙引號、單引號、反斜槓、null前面新增反斜槓「」。

統計**中自然是會帶有很多反斜槓的內容,這時候就要去掉新增的反斜槓。

預設php 指令 magic_quotes_gpc是on的,也就是開啟的。這時候就可以用stripslashes() 函式刪除自動新增的反斜槓。用法就是:比如包含字串的變數是$str,那麼就用stripslashes() 函式處理一下這個字串:stripslashes($str),輸出的結果就是去掉反斜槓的。

於是我就把讀取的字串內容用stripslashes()函式處理一下,即$value=stripslashes($str),再儲存。上傳**之後正常了。

但是又出現另外乙個問題,那就是因為本地php 指令 magic_quotes_gpc是off的,如果用這個函式的話,就會把本來正常的反斜槓也去掉了。這樣就不是我們所希望的了。

解決辦法就是可以使用函式 get_magic_quotes_gpc() 進行檢測,如果是開啟的狀態,那麼就去除反斜槓,如果是關閉的狀態,則不去除反斜槓。

程式**如下:

$str=$_post["str"];//讀取str的內容賦值給$str變數

if(get_magic_quotes_gpc())//如果get_magic_quotes_gpc()是開啟的

對指定的函式進行修改於測試,發現斜槓不會再繼續新增了。

PHP在指定的預定義字元前新增反斜槓

定義和用法 addslashes 函式在指定的預定義字元前新增反斜槓。這些預定義字元是 單引號 雙引號 反斜槓 null 語法 addslashes string 例子 在本例中,我們要向字串中的預定義字元新增反斜槓 echo addslashes str this is safe in a dat...

PHP中在函式和變數前加 的作用例解

操作符在php中通常有兩種意思 就是 與 的操作符,這次我們主要說只有乙個 在函式前加 表示 引用函式返回的那個物件 引用符 位址引用 因為它引用了函式web318 fun 返回的值,即相當於 ww web318 fun function web318 fun ww web318 fun echo ...

在php中的變數和函式名前加 符號的意思

在php中的變數和函式名前加 符號的意思 在php中 符號即傳的是變數的引用而不是拷貝,引用意味著用不同的名字訪問同乙個變數內容。這並不像 c 的指標,它們是符號表別名。注意在 php 中,變數名和變數內容是不一樣的,因此同樣的內容可以有不同的名字。最接近的比喻是 unix 的檔名和檔案本身 變數名...