A. 请问php中的转义字符是什么 能详细说一下吗
在php中:
* 以单引号为定界符的php字符串,支持两个转义\'和\\
* 以双引号为定界符的php字符串,支持下列转义:
\n 换行(LF 或 ASCII 字符 0x0A(10))
\r 回车(CR 或 ASCII 字符 0x0D(13))
\t 水平制表符(HT 或 ASCII 字符 0x09(9))
\\ 反斜线
\$ 美元符号
\" 双引号
\[0-7]{1,3} 此正则表达式序列匹配一个用八进制符号表示的字符
\x[0-9A-Fa-f]{1,2} 此正则表达式序列匹配一个用十六进制符号表示的字符
举几个例子:
一个包含\0特殊字符的例子:
$str = "ffff\0ffff";
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
输出结果:
----------------------
9
102 102 102 102 0 102 102 102 102
替换特殊字符的例子
$str = "ffff\0ffff";
$str = str_replace("\x0", "", $str);
//或者用$str = str_replace("\0", "", $str);
//或者用$str = str_replace(chr(0), "", $str);
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
输出结果:
----------------------
8
102 102 102 102 102 102 102 102
八进制ascii码例子:
//注意,符合正则\[0-7]{1,3}的字符串,表示一个八进制的ascii码。
$str = "\0\01\02\3\7\10\011\08\8"; //这里的\8不符合要求,被修正为"\\8" (ascii为92和56)
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
输出结果:
----------------------
11
0 1 2 3 7 8 9 0 56 92 56
十六进制ascii码例子:
$str = "\x0\x1\x2\x3\x7\x8\x9\x10\x11\xff";
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
输出结果:
----------------------
10
0 1 2 3 7 8 9 16 17 255
B. php mysql转义特殊字符的函数有哪些
addslashes对SQL语句中的特殊字符进行转义操作,包括(‘), (“), (), (NUL)四个字符,此函数在DBMS没有自己的转义函数时候使用,但是如果DBMS有自己的转义函数,那么推荐使用原装函数,比如MySQL有mysql_real_escape_string函数用来转义SQL。 注意在PHP5.3之前,magic_quotes_gpc是默认开启的,其主要是在$GET, $POST, $COOKIE上执行addslashes操作,所以不需要在这些变量上重复调用addslashes,否则会double escaping的。不过magic_quotes_gpc在PHP5.3就已经被废弃,从PHP5.4开始就已经被移除了,如果使用PHP最新版本可以不用担心这个问题。stripslashes为addslashes的unescape函数。
C. PHP7如何在php.ini文件中开启自动转义功能 php.ini中不包含magic-quote
首先说明下magic-quote在PHP5.4版本中就已经废除了。详情请参考:https://www.php.net/manual/zh/info.configuration.php
应用示例
D. php转义字符,这是什么意思
\的意思是转义
如果你双引号里要出现双引号是不行的,所以要转义
比如:\"就是相当于'
(转义双引号等于单引号)
\'等于'
(转义单引号等于单引号)
你这段的意思是:执行循环,次数为3次。循环输出表格的列(align=\ "center \设定为居中)。img是 图片,scr是图片位置,位置是数组 $pictures的第$i个(根据循环次数来定)
echo " \ " /></td>"; \ " />是img的结束标记 </td>是列的结束标记
不过我感觉程序有点问题。。
E. PHP的转义问题
当要将一个有特殊用途的符号作为一个普通字符使用,或者要使用一个普通字符的特殊用法时,就要用转义。
比如 " 是用来限定字符串的,当一个字符串中有一个"时,就要用 \ 转义,就像 "abc"d" 这样,c 后面的 " ,我们想要让它作为一个普通字符双引号,这种表示是错误的,只有 abc 才被当作字符串处理,而后面的 d" 这部分无法处理,出现语法错误,正确的表示方法是 "abc\"d" 。同理,\r 不再是字母 r ,而是回车,\n 也不再是字母 n ,而是换行。
你的代码中,因为 sql 语句应该是
select id from gb_users where username='name'
这里应该有引号,而引号和双引号都是限定字符串的特殊符号,只有用 \ 转义,才能将其作为一个和=一样的普通符号包含在 sql 语句中。
F. 谁能教我php转义.我只要一段插入数据库的文本框内容里面,把特殊字符前面加空格.谁能教我,或者给我段现成的
默认状态下,php的魔术引用是打开的,此时客户端提交过来的变量,其中的单双引号等,都会被php做转义处理,即加反斜杠,程序可以先获取当前配置,如果魔术引用打开,就调用stripslashes函数去除反斜杠:
if (get_magic_quotes_gpc())
$input = stripslashes($_POST['input']);
G. php怎么把数组里的数字值转义成纯数字
1、你可以用current来输出:
echocurrent($_clean['ids']);
2、implode函数生成的本领就是个字符串,本来就可以用echo输出……