PHP中的addslashes函數是開發人員常用的字符串轉義函數之一,它可以將一些特殊字符以及引號進行轉義,以防止SQL注入等安全問題。但有時候,我們需要將轉義后的字符串還原成原本的樣子,這時候我們需要一個相反的函數來完成這個任務。下面就來介紹一下PHP中的反轉義函數:stripslashes。
相對于addslashes而言,stripslashes功能單一,只有一個功能——對一個轉義后的字符串進行反轉義。其函數原型如下:
string stripslashes ( string $str )
其中$str表示需要進行反轉義的字符串。
當需要對轉義后的字符串進行還原時,就可以通過這個函數來實現了。下面我們來看一下例子:
$str = "It\'s a wonderful day."; echo stripslashes($str);
運行結果是:
It's a wonderful day.
可以看到,反轉義后,字符串中的單引號已經被還原成了原本的樣子。
當然,有時候字符串中可能會同時存在單引號和雙引號,這時候我們需要同時對這兩種引號進行反轉義。下面是一個例子:
$str = "He said, \"It\'s a wonderful day.\""; echo stripslashes($str);
運行結果是:
He said, "It's a wonderful day."
可以看到,雙引號和單引號都被正確的還原成了原本的樣子。
除了引號之外,addslashes函數還會轉義一些特殊字符,比如說斜杠。相應地,如果需要反轉義中的斜杠,還需要使用到一個參數。
返回值:
返回從一個反斜線轉義的字符串。
在默認情況下,stripslashes函數只會對字符串中以反斜杠進行轉義的字符進行反轉義,它會忽略所有的其它轉義字符,比如說雙引號和換行符。所以,要想對這些字符進行反轉義,就需要在函數調用時傳遞額外的參數了。下面我們來看一個例子:
$str = addcslashes("This is a string. It\'s \"really great\"!", "\\\"\0..\37"); echo $str."\n"; echo stripslashes($str);
這里的addcslashes函數就是用來將特殊字符進行轉義的函數,其中第二個參數指定了需要轉義的字符,它們分別是反斜杠、雙引號、和ASCII碼在0到31之間的字符。運行以上代碼,輸出結果如下:
This is a string. It\'s \"really great\"! This is a string. It's "really great"!
通過調用stripslashes函數,我們將轉義后的字符串還原成了原本的樣子。
總結:
PHP中的stripslashes函數用于將轉義后的字符串還原成原本的樣子。它是addslashes函數的相反操作。在調用函數時,如果想要對除反斜杠之外的特殊字符進行反轉義,需要另外傳遞參數。