实例1
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=gb2312">
<title>自动对字符串进行转义和还原</title>
<styletype="text/css">
<!--
body {
background-color: #FFCCFF;
}
-->
</style></head>
<body>
<?php
$str ="select * from tb_book where bookname = 'PHP项目开发全程实录'";
echo $str."<br>";
$a = addslashes($str);//对字符串中的特殊字符进行转义
echo $a."<br>";//输出转义后的字符
$b = stripslashes($a);//对转义后的字符进行还原
echo $b."<br>";//将字符原义输出
?>
</body>
</html>
运行结果:
select * from tb_book where bookname = 'PHP项目开发全程实录'
select * from tb_book where bookname = \'PHP项目开发全程实录\'
select * from tb_book where bookname = 'PHP项目开发全程实录'
实例2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=gb2312">
<title>对指定范围的字符串进行转义、还原</title>
<styletype="text/css">
<!--
body {
background-color: #FFCCCC;
}
-->
</style></head>
<body>
<?php
$a="编程体abc’验网";//对指定范围内的字符进行转义
$b=addcslashes($a,"编程体验网");//转义指定的字符串
echo "转义字符串:".$b;//输出转义后的字符串
echo "<br>";//执行换行
$c=stripcslashes($b);//对转义的字符串进行还原
echo "还原字符串:".$c;//输出还原后的转义字符串
?>
</body>
</html>
运行结果:
转义字符串:\261\340\263\314\314\345abc’\321\351\315\370
还原字符串:编程体abc’验网
运行说明
1、addslashes函数说明
string addslashes ( string $str )
返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。
一个使用addslashes()的例子是当你要往数据库中输入数据时。例如,将名字 O'reilly 插入到数据库中,这就需要对其进行转义。
强烈建议使用DBMS指定的转义函数(比如MySQL是mysqli_real_escape_string()),但是如果你使用的DBMS没有一个转义函数,并且使用\来转义特殊字符,你可以使用这个函数。
仅仅是为了获取插入数据库的数据,额外的\并不会插入。
当PHP指令magic_quotes_sybase被设置成on时,意味着插入'时将使用'进行转义。
PHP5.4之前PHP指令magic_quotes_gpc默认是on,实际上所有的GET、POST 和COOKIE数据都被addslashes()了。不要对已经被magic_quotes_gpc转义过的字符串使用addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
参数
str
要转义的字符。
返回值
返回转义后的字符。
2、stripslashes函数说明
string stripslashes ( string $str )
反引用一个引用字符串。
Note:
如果magic_quotes_sybase项开启,反斜线将被去除,但是两个反斜线将会被替换成一个。
一个使用范例是使用PHP检测magic_quotes_gpc配置项的开启情况(在PHP5.4之前默认是开启的)并且你不需要将数据插入到一个需要转义的位置(例如数据库)。
例如,你只是简单地将表单数据直接输出。
参数
str
输入字符串。
返回值
返回一个去除转义反斜线后的字符串(\' 转换为 ' 等等)。双反斜线(\\)被转换为单个反斜线(\)。
3、addcslashes 函数说明
string addcslashes ( string $str , string $charlist )
返回字符串,该字符串在属于参数charlist列表中的字符前都加上了反斜线。
参数
str
要转义的字符。
charlist
如果charlist中包含有 \n,\r 等字符,将以C语言风格转换,而其它非字母数字且ASCII码低于32以及高于126的字符均转换成使用八进制表示。
当定义charlist参数中的字符序列时,需要确实知道介于自己设置的开始及结束范围之内的都是些什么字符。
返回值
返回转义后的字符。
4、stripcslashes函数说明
string stripcslashes ( string $str )
返回反转义后的字符串。可识别类似 C 语言的 \n,\r,... 八进制以及十六进制的描述。
参数
str
需要反转义的字符串。
返回值
返回反转义后的字符串。
相关推荐
主要介绍了PHP中addslashes()和stripslashes()实现字符串转义和还原用法,结合实例形式较为详细的分析了addslashes()和stripslashes()函数的功能,定义及具体使用技巧,并附带说明了addslashes()与addcslashes()函数的...
`escape()`和`unescape()`是JavaScript的老式字符串编码和解码方法,它们用十六进制转义序列来替换某些字符,不过现在通常推荐使用`encodeURIComponent()`和`decodeURIComponent()`。 总结起来,PHP和JavaScript都...
12. **strip_tags($string, $allowed)**: 移除字符串中的HTML和PHP标签,$allowed参数可指定允许保留的标签名称。 13. **stripcslashes($string)**: 去掉字符串中的反斜杠。 14. **stripslashes($string)**: 去掉...
函数`addslashes()`和`stripslashes()`在对数据库操作时尤其重要,因为它们能够转义字符串中的特殊字符。`addslashes()`函数通常在将数据插入数据库之前使用,它会在字符串中的特殊字符(例如单引号`'`和双引号`"`)...
在PHP编程中,字符串处理是常见的任务之一,用于创建、修改和分析文本数据。本文将深入探讨几个PHP中常用的字符串处理函数,通过实例分析它们的功能和用法。 1. chop() / rtrim() `chop()`函数是`rtrim()`函数的...
- `stripslashes()` 还原 `addslashes()` 转义过的字符串。 - `addcslashes()` 和 `stripcslashes()` 类似,但指定特定字符进行转义和还原。 - `strlen()` 计算字符串长度。 - `substr()` 截取字符串的一部分,...
当单引号或双引号出现在字符串内时,如果它们没有被转义,PHP会尝试解析它们为字符串结束,从而导致错误。例如,`echo "Hello 'World'";` 这行代码将会在'W'处结束字符串,而'orld'则被视为代码的一部分,引发错误。...
问题描述中,当使用PHP5.3版本的服务器,和Java客户端进行数据交互时,JSON编码后的数据中,中文字符被转义,而Java客户端在接收时又会自动将转义序列还原成中文。这在进行如签名验证等需要精确数据一致性的操作时,...
2. **`strip_tags()`**:用于去除字符串中的HTML和PHP标签。 - 示例代码: ```php $str = "<p>Hello <b>World</b></p>"; $cleanStr = strip_tags($str); echo $cleanStr; // 输出 "Hello World" ``` #### 三...
- **其他字符串操作函数**:PHP提供了丰富的字符串处理函数,如`trim()`用于去除字符串首尾空白,`addcslashes()`用于在字符串中插入反斜杠以转义特殊字符,`uudecode()`用于解码uuencode编码的字符串,`md5()`用于...
在转义后,当我们从数据库中取出数据并显示时,可以使用 `stripcslashes` 还原字符串,例如: ```php $new_sql_01 = stripcslashes($new_sql); ``` 这会将 `new_sql` 中的转义单引号恢复为普通单引号。 值得注意...
魔法引用是一种过时的安全特性,它会自动对所有GET、POST和COOKIE数据添加反斜杠,以转义特殊字符。如果这个选项开启,我们需要使用 `stripslashes_array` 函数来移除这些额外的反斜杠。 `stripslashes_array` 函数...
- `implode()` 和 `explode()` 分别用于合并数组为字符串和分割字符串为数组。 通过这些基本概念和函数,开发者可以构建复杂的PHP程序,处理数据、控制流程、实现用户交互等。学习并熟练掌握这些知识点对于深入...
- `$encoding`: 指定输入字符串的编码,如 `UTF-8` 或 `ISO-8859-1`。如果未指定,将尝试从PHP配置中获取默认编码。 与 `htmlspecialchars_decode` 不同,`html_entity_decode` 能够处理更多的HTML实体,包括数字...
需要注意的是,虽然使用stripcslashes可以处理已经被转义的字符串,但是最佳实践是避免在用户输入数据时自动转义,而是根据实际需要在代码中明确地进行转义,这样可以更好地控制数据的处理,同时减少服务器不必要的...
在处理已经转义的数据时,使用stripslashes()可以还原原始字符串。 5. **strip_tags()**:此函数用于从字符串中删除HTML、XML和PHP标签,以获取纯文本内容。可以设置允许的标签,但无法改变对HTML注释的处理。 6. ...