首页 >后端开发 >php教程 >PHP转义与反转义字符串函数详解

PHP转义与反转义字符串函数详解

伊谢尔伦
伊谢尔伦原创
2018-05-12 11:31:1718035浏览

在PHP语言中,字符串的转义与反转义是可以使用PHP提供的自有函数addslashes()函数和stripslashes()函数来实现。

1. addslashes()函数

addslashes() 函数用来在指定的字符串string添加反斜杠(\)。

语法格式如下:

addslashes(string);

说明:返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。

2. stripslashes()函数

stripslashes()函数用来将addcslashes() 函数添加反斜杠(\)删除返回原样。

语法格式如下:

stripslashes(string);

前面我们介绍了什么是php转义与反转义字符串数据,介绍了转义符 " \ ",以及怎么使用转移符来对字符串进行转义和反转义,并使用了实例进行了说明。在这里

使用addslashes() 函数对字符串进行转义,然后在使用stripslashes()函数进行还原的实例如下:

<?php
  $str = "this url_name = &#39;PHP中文网&#39;";
  echo $str."<br>";
  $a = addslashes($str);               //对字符串进行转义
  echo $a."<br>";                           //输出转义后的字符串
  $b = stripslashes($a);                //对转义后的字符串进行还原
  echo $b."<br>";                          //输出还原后的字符串
?>

输出结果如下:

this url_name = &#39;PHP中文网&#39;
this url_name = \&#39;PHP中文网\&#39;
this url_name = &#39;PHP中文网&#39;

注意:数据在插入数据库之前,有必要使用addcslashes() 函数对字符串进行转义,以免特殊字符未经转义而在插入数据库时出现错误。另外,对于使用addslashes() 函数实现的转义字符串使用stripslashes()函数进行还原,但数据再插入数据库之前必须再次进行转义。

说明: 在缓存文件中,一般对缓存数据的值采用addcslashes() 函数进行指定范围的转义。

当要往数据库中输入数据时。例如,将名字 O'reilly 插入到数据库中,这就需要对其进行转义。大多数据库使用 \ 作为转义符:O\'reilly。这样可以将数据放入数据库中,而不会插入额外的 \。当 PHP 指令 magic_quotes_sybase 被设置成 on 时,意味着插入 ' 时将使用 ' 进行转义。 

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函数。

以上是PHP转义与反转义字符串函数详解的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn