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

伊谢尔伦
Lepaskan: 2023-03-07 12:36:02
asal
17999 orang telah melayarinya

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

1. addslashes()函数

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

语法格式如下:

addslashes(string);
Salin selepas log masuk

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

2. stripslashes()函数

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

语法格式如下:

stripslashes(string);
Salin selepas log masuk

前面我们介绍了什么是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>";                          //输出还原后的字符串
?>
Salin selepas log masuk

输出结果如下:

this url_name = &#39;PHP中文网&#39;
this url_name = \&#39;PHP中文网\&#39;
this url_name = &#39;PHP中文网&#39;
Salin selepas log masuk

注意:数据在插入数据库之前,有必要使用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函数。

Atas ialah kandungan terperinci PHP转义与反转义字符串函数详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan