很多站长朋友们都不太清楚php提交单引号,今天小编就来给大家整理php提交单引号,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php单引号和双引号的区别与用法 2、 PHP语法中 单引号和双引号的区别 3、 php输入一个单引号为何输出一个斜杠 4、 php 的单引号和双引号的用法 5、 在thinkphp下,表单提交的文本内容包含单双引号,html标签,该怎么处理, php单引号和双引号的区别与用法php中单引号的执行效率是大于双引号的,所以推荐使用单引号。
在一些特殊的情况下也可以使用双引号,比如SQL语句中:
$sql = "select * from table_name where id = '$id'";
PHP语法中 单引号和双引号的区别在PHP中,字符串的定义可以使用单引号,也可以使用双引号。但是必须使用同一种单或双引号来定义字符串,如:‘Hello"和“Hello'为非法的字符串定义。
定义字符串时,只有一种引号被视为定义符,即单引号或双引号。于是,如果一个字符串由双引号开始,那么只有双引号被分析器解析。这样,就可以在双引号串中包含任何其他字符,甚至单引号。下面的引号串都是合法的:
$s = "I am a 'single quote string' inside a double quote string";
$s = 'I am a "double quote string" inside a single quote string';
$s = "I am a 'single quote string' inside a double quote string";
$s = 'I am a "double quote string" inside a single quote string';
PHP允许我们在双引号串中直接包含字串变量,单引号串和双引号串在PHP中的处理是不相同的。双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符。例如如下代码:
$foo = 2;
echo "foo is $foo"; // 打印结果: foo is 2
echo 'foo is $foo'; // 打印结果: foo is $foo
echo "foo is $foo\n"; // 打印结果: foo is 2 (同时换行)
echo 'foo is $foo\n'; // 打印结果: foo is $foo\n
$foo = 2;
echo "foo is $foo"; // 打印结果: foo is 2
echo 'foo is $foo'; // 打印结果: foo is $foo
echo "foo is $foo\n"; // 打印结果: foo is 2 (同时换行)
echo 'foo is $foo\n'; // 打印结果: foo is $foo\n
在单引号串中甚至反斜杠也失去了他的扩展含义(除了插入反斜杠\\和插入单引号\')。所以,当想在字串中进行变量代换和包 含\n(换行符)等转义序列时,应该使用双引号。单引号串可以用在其他任何地方,脚本中使用单引号串处理速度会更快些,因为PHP语法分析器对单引号串 的处理方式比较单纯,而双引号的处理由于串内部也需要解析,因此更复杂些,所以处理速度略慢。
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 的单引号和双引号的用法$test1 = "PHP";
1:echo "互联网最流行的技术$test1" //输出 互联网最流行的技术PHP
2:echo '互联网最流行的技术$test1' //输出 互联网最流行的技术$test1
上面两个例子说明,双引号里面的变量,会当作变量解释,单引号里面的变量会直接当作字符串来处理,就是说,在单引号里面的变量会失去其变量的性质,变成一个字符串。
如果想用第一句的方法输入第二句的结果,加转义符号啊
3:echo "互联网最流行的技术\$test1" //输出 互联网最流行的技术$test1
4:echo "互联网最流行的技术$test1技术" //本来是想输出 互联网最流行的技术PHP技术,但是你发现,告诉你,找不到变量$test1技术,因为没有加空格,所以它把后面所有的都当成一个变量了。
所以你会发现,很多优秀的作品,都推荐使用''单引号来写变量,除非里面是SQL语句。就是防止这类的错误。至于为什么SQL除外,你可以自己想一下!
在thinkphp下,表单提交的文本内容包含单双引号,html标签,该怎么处理,使用html字符串的装换处理方法,htmlspecialchars() ,详见PHP手册。取出来显示的时候,使用方法html_entity_decode(),还原html标签,详细看PHP手册关于PHP和HTML的。
关于php提交单引号的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php提交单引号 关于php中的使用双引号和单引号定义一个字符串的详细内容...