addslashes()

1. 定义

该函数在部分特殊字符(单引号'、双引号"、反斜线\以及NULL)前面加上反斜线\。 多用于数据库查询特殊字符转义。

注:

  • 这与str_replace()等字符替换函数不同,addslashes()等转义函数会使用正确的编码转换,而不会被编码限制。
  • 该函数仅对引号和NULL进行转义,而数据库查询语句不止会被这两种符号打断,使用时还须注意!
  • PHP配置magic_quotes_gpc默认为on,会自动对所有的GETPOSTCOOKIE数据进行addslashes()处理。故此不要对这些已经转义过的字符串使用该函数!以避免导致双层转义。

2. 语法

addslashes ( string $str ) : string

3. 参数说明

参数 可选性 数据类型 描述
$str 必需 字符串 需要转义的字符串

4. 示例

<?php

// addslashes()
// 该函数在部分特殊字符(单引号`'`、双引号`"`、反斜线`\`以及`NULL`)前面加上反斜线`\`

$str = "SELECT `name`, `avatar` FROM `user` WHERE `gender` = '女' AND `profile` = NULL";
$res = addslashes($str);
var_dump($res);// 输出:string(81) "SELECT `name`, `avatar` FROM `user` WHERE `gender` = \'女\' AND `profile` = NULL"

5. 延展阅读

  • stripcslashes():将一个已被函数addcslashes()转义的字符串,进行反转义
  • stripslashes():将一个已被函数addslashes()转义的字符串,进行反转义(即去除特殊符号前的斜线)
  • addcslashes():以 C 语言风格使用反斜线对字符串进行转义处理,可对指定字符或字符范围进行转义
  • htmlspecialchars():将部分特殊字符转换为 HTML 实体
  • quotemeta():使用反斜线对部分特殊字符进行转义处理