‘壹’ 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'