php 转义字符处理,PHP转义与反转义字符串函数详解

在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 = 'PHP中文网'";

echo $str."
";

$a = addslashes($str); //对字符串进行转义

echo $a."
"; //输出转义后的字符串

$b = stripslashes($a); //对转义后的字符串进行还原

echo $b."
"; //输出还原后的字符串

?>

输出结果如下:this url_name = 'PHP中文网'

this url_name = \'PHP中文网\'

this url_name = 'PHP中文网'

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值