当前位置:首页 » 编程语言 » php单引号转义

php单引号转义

发布时间: 2022-04-26 10:35:38

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中单引号与双引号的区别分析

①转义的字符不同
单引号和双引号中都可以使用转义字符(\),但只能转义在单引号中引起来的单引号和转义转义符本身。如果用双引号(“”)括起字符串,PHP懂得更多特殊字符串的转义序列。
<?php
$str1
=
'\',\\,\r\n\t\v\$\"';
echo
$str1,'<br
/>';
$str2
=
"\",\\,a\r\n\tb\v\$\'";
echo
$str2,'<br
/>';
?>
②对变量的解析不同
单引号字符串中出现的变量不会被变量值替代。即PHP不会解析单引号中的变量,而是将变量名原样输出。双引号字符串最重要的一点是其中的变量名会被变量值替代,即可以解析双引号中包含的变量。
<?php
$age
=
20;
$str1
=
'I
am
$age
years
old';
$str2
=
"I
am
$age
years
old";
echo
$str1,'<br
/>';
//
I
am
$age
years
old
echo
$str2,'<br
/>';
//
I
am
20
years
old;
?>
③解析速度不同
单引号不需要考虑变量的解析,速度比双引号快.推荐用单引号.有的时候双引号也比较好用,比如在拼凑sql
语句
反斜杠
//使用单引号
echo
'
this
\n
is
\r
the
blog
\t
of
\\
zhoumanhe
\\';
//上面使用单引号输出的值是
this
\n
is
\r
the
blog
\t
of

zhoumanhe

echo
'
';
echo
"
";
//使用双引号
echo
"this
\n
is
\r
the
blog
\t
of
\\
zhoumanhe
\\";
//上面使用双引号输出的值是
this
is
the
blog
of

zhoumanhe

使用sql
假设查询条件中使用的是常量,例如:
select
*
from
abc_table
where
user_name='abc';
SQL语句可以写成:
SQLstr
=
“select
*
from
abc_table
where
user
_name=
‘abc'”
;
假设查询条件中使用的是变量,例如:
$user_name
=
$_REQUEST['user_name'];
//字符串变量

$user=array
(”name”=>
$_REQUEST['user_name‘,"age"=>$_REQUEST['age'];//数组变量
SQL语句就可以写成:
SQLstr
=
“select
*
from
abc_table
where
user_name
=


.
$user_name
.


“;
SQLstr
=
“select
*
from
abc_table
where
user_name
=


.
$user["name"]
.


“;
对比一下:
SQLstr=”select
*
from
abc_table
where
user_name
=

abc


;
SQLstr=”select
*
from
abc_table
where
user_name
='

.
$user
_name
.


“;
SQLstr=”select
*
from
abc_table
where
user_name
='

.
$user["name"]
.


“;
SQLstr可以分解为以下3个部分:
1:”select
*
from
table
where
user_name
=


//固定SQL语句
2:$user
//变量
3:”


附:大家也看到了
echo
'<br/>';
html中的标签在单引号和双引号中都有效。
总结一下PHP引号使用原则
1.字符串的值用引号
2.PHP中尽量用单引号,HTML代码全部用双引号
3.在包含变量的时候,用双引号可以简化操作
4.复杂的情况下用大括号包起来
PHP引号还有一个用处就是,有的时候需要用php生成文本文件,换行符n需要用双引号才能好使,单引号则会直接把n当成字符输出。
使用总结:在字符串里面不需要加入
变量
或者
单引号(')和反斜杠(\)
时,尽量用单引号引字符串,因为省去了双引号检查处理转义和解析变量上面的时间。能用单引号尽量用单引号。

③ php 单双引号与转义的问题

在单引号串中反斜线失去了它的扩展含义(除了添入反斜杠\\和添入单引号\')。所以,当你想在字串中进行变量代换和包含\n(换行符)等转义序列时,你应该使用双引号。

所以单引号不会转义,\\只是添加了一个\,这个类似\' 添加了一个单引号。

④ php中单引号和双引号的区别,哪个速度更快为什么

单引号更快。 1.在php中,单引号内的数据不会被解析(任何变量和特殊转义字符),所以速度更快,而双引号内的数据会被解析,如变量($var)值会代入字符串中,特殊转义字符也会被解析成特定的单个字, 2.数组中,如果下标不是整型,而是字符串类型,请务必用单引号将下标括起,正确的写法为$array[‘key’],而不是$array[key],因为不 正确的写法会使PHP解析器认为key是一个常量,进而先判断常量是否存在,不存在时才以key作为下标带入表达式中,同时出发错误事件,产生一条 Notice级错误。

⑤ PHP 单引号,双引号与转义的问题

单引号和双引号都会对字符串进行转义。转义是对内容的进行安全过滤。但而单双号与双引号主要的区别是在解析时有没有进行变量解析。

⑥ PHP中的双引号和单引号的应用

无论是书写
JavaScript
还是
PHP,总习惯于使用单引号。但周末在家
coding
的时候碰到个问题,需要通过
PHP
过滤字符串中的换行符,按照下面的方法操作:
$out
=
str_replace(array('rn',
'r',
'n'),
'',
$out);PHP
提供三种定义字符串的方法:单引号、双引号、本地文档(英文叫做
here
document
或者
heredoc)。
单引号:
使用单引号是最高效的方法,因为
PHP
不会检查单引号字符串中的内置变量和转义序列,需要转义的字符只有反斜杠和单引号本身。
双引号:
会检查内置变量和转义序列,但不能识别转义的单引号。这也正说明了开始那段代码的错误之处,正确的做法是使用双引号来定义换行的转义序列:
$out
=
str_replace(array("rn",
"r",
"n"),
'',
$out);本地文档:
检查所有的内置变量和转义序列,双引号无需转义。例如:
echo
<<
this
is
a
"here
document"
example.
just
for
test.
EOT;简单记录下,加深印象。

⑦ PHP表示字符串的单引号和双引号有什么区别

在PHP这类型语言中,没有字符类型,只有字符串类型。单引号代表按原样输出。
比如'hello\r\n',输出的就是hello\r\n。但如果是双引号,则会对其中的转义字符进行转换。比如还是刚才的字符串,由于\r\n是换行标记,所以双引号内的"hello\r\n"就会输出hello后再换行。

⑧ 在php中,既可以使用单引号也可以使用双引号来包围字符串,二者没有任何区别

您好,普通来看是没有任何区别的,但是实质上是有区别的,在PHP中,字符串的定义可以使用英文单引号' ',也可以使用英文双引号" "。一般情况下两者是通用的.但双引号内部变量会解析,单引号则不解析.PHP允许我们在双引号串中直接包含字串变量。而单引号串中的内容总被认为是普通字符,因此单引号中的内容不会被转义效率更高。比如:$str='hello';echo "str is $str"; //运行结果: str is helloecho 'str is $str'; //运行结果: str is $strphp中,双引号中的变量($var)和特殊字符(\r\n之类)会被转义,单引号中的内容不会被转义(所以效率更高)。使用上的话,我以前很喜欢在sql字符串里这样写$sql = "SELECT * FROM table WHERE id = $id",这样里面的$id可以被转义,单引号就不行。在JavaScript中 单引号 和双引号没有区别,只要成对使用就行。我在JavaScript 中使用单引号大多是因为 Javascript 和 HTML 打交道比较多,输出 HTML 片段的时候不需要转义 HTML 中属性的引号。总之,看您的实际情况来用,怎么方便怎么使用。

⑨ 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);//将字符串进行处理

}
对指定的函数进行修改于测试,发现斜杠不会再继续添加了。
本篇转自转载: 品味人生

热点内容
汽车小组件怎么弄到安卓桌面 发布:2025-05-16 13:51:12 浏览:219
linuxg编译器下载 发布:2025-05-16 13:50:58 浏览:775
centosc编译器 发布:2025-05-16 13:50:17 浏览:947
安卓手机如何变换桌面 发布:2025-05-16 13:39:33 浏览:514
sql存储过程命令 发布:2025-05-16 13:17:54 浏览:145
用纸做解压小玩具西瓜 发布:2025-05-16 13:04:09 浏览:935
局域网xp无法访问win7 发布:2025-05-16 13:03:58 浏览:942
油卡如何修改密码 发布:2025-05-16 13:00:35 浏览:901
安卓手机如何拼照片 发布:2025-05-16 12:58:23 浏览:374
深入浅出python 发布:2025-05-16 12:56:52 浏览:656