如何将字符在PHP中的进行转义
手动转义、还原字符
"\" 是一个转义符,紧跟在"\"后面的第一个字符将没有意义或有特殊意义。例如"'"是字符串的定界符,而"\'"中的"'"就失去了定界符的意义,变为了普通的单引号。
例如
echo 'select * from user where username=\'107lab\'';
运行结果为:
select * from user where username='107lab'
技巧:对于简单的字符串,建议采用手动的方法进行字符串转义,而对于数据量较大的字符串,建议采用自动转义函数实现字符串的转义。
自动转义,还原字符串
自动转义还原字符串可以应用PHP提供的addslashes()函数和stripslashes()函数实现。
addslashes()函数:
用来给字符串str加入斜线"\",对指定字符串中的字符进行转义,该函数可以转义的字符包括,单引号,双引号,反斜杠,和NULL字符"0"。该函数常用于生成SQL语句时,对SQL语句中的部分字符进行转义。
语法如下:
string addslashes(string str); 参数str为将要被操作的字符串。
stripslashes()函数:
用来将应用addslashes()函数转义后的字符str返回原样。
语法如下:
string stripslashes(string str); 参数str为将要被操作的字符串。
$str="select * from user where username='107lab'";
$a=addslashes($str);
echo $a."<br>";
$b= stripslashes($a);
echo $b."<br>";
运行结果为:
select * from user where username=\'107lab\' select * from user where username='107lab'
注:所有数据在插入数据库之前,有必要应用addslashes()函数进行字符串转义,以免特殊字符未经转义在插入数据库时出现错误。
默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
addcslashes()函数
实现对指定字符串进行转义,即在指定的字符前加上反斜杠。通过该函数可以将要添加到数据库中的字符串进行转义,从而避免出现乱码等问题。
语法如下
string addcslashes(string str,string charlist)
参数str为将要被操作的字符串;参数charlist指定在字符串中哪些字符前加上反斜杠"\",如果参数charlist中包含"\n"、"\r"等字符,将以C语言的风格转换,而其他非字母数字且ASCII码低于32以及高于126的字符均转换成八进制表示
stripcslashes()函数
用来将应用了addcslashes()函数转义的字符串str返回原样。
语法如下:
string stripcslashes(string str)
例如:
$str= addcslashes("107网站工作室","107网站工作室");
运行结果如下
\1\0\7\347\275\221\347\253\231\345\267\245\344\275\234\345\256\244
注:可以通俗的理解为在指定的字符前加上反斜杠
$str = addcslashes("A001 A002 A003","A"); echo($str);
运行结果如下
\A001 \A002 \A003
注释:addcslashes() 函数对大小写敏感。
注释:对以下字符应用 addcslashes() 时请小心:0(NULL), r(回车), n(换行), f 换页)、t(制表符)以及 v(垂直制表符)。在 PHP 中,\0, \r, \n, \t, \f 以及 \v 是预定义的转义序列。
以上就是如何将字符在PHP中的进行转义 的详细内容,更多请关注其它相关文章!
下一篇: mysql非占位排名_MySQL
推荐阅读
-
PHP字符串函数系列之nl2br(),在字符串中的每个新行 ( ) 之前插入 HTML 换行符br
-
在Python中的Django框架中进行字符串翻译
-
用PHP中的 == 运算符进行字符串比较
-
PHP字符串函数系列之nl2br(),在字符串中的每个新行 ( ) 之前插入 HTML 换行符br
-
PHP字符串函数系列之nl2br(),在字符串中的每个新行 ( ) 之前插入 HTML 换行符br
-
【PHP函数】PHP 去掉字符串中的转义符号
-
用PHP中的 == 运算符进行字符串比较
-
PHP在字符串中查找指定字符串并删除的代码
-
Mybatis在Mapper.xml文件中的转义字符处理方式
-
深入解读PHP DOMXPath在进行XML文件解析中的作用体现