『壹』 php 單引號和雙引號的區別
1、變數。雙引號解釋變數,單引號不解釋變數;雙引號里插入單引號,其中單引號里如果有變數的話,變數解釋;
2、字元。雙引號解釋轉義字元,單引號不解釋轉義字元,但是解釋'和;
3、效率。能使單引號字元盡量使用單引號,單引號的效率比雙引號要高(因為雙引號要先遍歷一遍,判斷裡面有沒有變數,然後再進行操作,而單引號則不需要判斷)。
(1)php單引號轉義字元擴展閱讀:
一般情況下兩者是通用的。但雙引號內部變數會解析,而單引號則不解析。
PHP允許我們在雙引號串中直接包含字串變數。
而單引號串中的內容總被認為是普通字元,因此單引號中的內容不會被轉義效率更高。
比如:
$str = 'hello world';
echo "str is $str"; //運行結果: str is hello world
echo 'str is $str'; //運行結果: str is $str
『貳』 php輸入一個單引號為何輸出一個斜杠
在為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()是打開的
{
$str=stripslashes($str);//將字元串進行處理
}
對指定的函數進行修改於測試,發現斜杠不會再繼續添加了。
本篇轉自轉載: 品味人生
『叄』 在PHP正則表達式中雙引號與單引號有什麼區別,雙引號里哪些需要轉義,單引號里又是哪些需要轉義
單引號里不會轉義
因此「\d"會直接傳給正則引擎,然後由正則引擎將\d解釋成數字
雙引號中\d會轉義,由於\d不是有意義的轉義符,因此\d會變成字元『d'傳給正則引擎,所以必須寫成'\\d'