php stripslashes和addslashes的区别


`stripslashes` 和 `addslashes` 是 PHP 中两个用于处理字符串的特殊字符的函数,它们的作用相反。

### `addslashes`

`addslashes` 函数用于在指定的预定义字符前添加反斜杠(`\`)。这些预定义字符是:

- 单引号(')

- 双引号(")

- 反斜杠(\)

- NULL 字符(即 ASCII 值为 0 的字符)

这个函数主要用于处理字符串,以便在数据库查询中安全地使用,防止 SQL 注入攻击。它不会修改字符串中的非预定义字符。

**示例**:


$str = "It's a test.";
$escapedStr = addslashes($str);
echo $escapedStr; // 输出:It\'s a test.

### `stripslashes`

`stripslashes` 函数则用于去除字符串中的反斜杠。这个函数通常与 `addslashes` 一起使用,用于在数据被处理或显示之前,还原之前被 `addslashes` 添加的反斜杠。

**示例**:


$escapedStr = "It\'s a test.";
$unescapedStr = stripslashes($escapedStr);
echo $unescapedStr; // 输出:It's a test.

### 总结

- `addslashes`:向字符串中的特定字符添加反斜杠,常用于数据入库前的预处理,防止 SQL 注入等安全问题。

- `stripslashes`:去除字符串中的反斜杠,常用于数据出库后或显示前的处理,恢复字符串的原貌。