一、定义
addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
预定义字符是:
- 单引号(’)
- 双引号(”)
- 反斜杠(\)
- NULL
注释:默认地,PHP 对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。所以您不应对已转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
二、语法
addslashes(string) // string 是必须的
三、示例:
例子 1
向字符串中的预定义字符添加反斜杠:
<?php
$str = "hell world's from coder?";
echo $str . " This is not safe in Earth.<br>";
echo addslashes($str) . " This is safe in Earth.";
?>
例子 2
向字符串中的预定义字符添加反斜杠:
<?php
/*
递归对数组转义
*/
$array = array('a"b',array("c'd",array('e"f')));
// 以为递归转义函数
function _addslashes($arr){
foreach ($arr as $key => $value) {
if (is_string($value)) {// 如果字符串中含有 " ,就转义
$arr[$key] = addslashes($value);
}elseif (is_array($value)) {// 如果是数组,继续调用自身再转义
$arr[$key] = _addslashes($value);
}
}
return $arr;
}
print_r(_addslashes($array));// 打印递归转义后的数组
print_r($array);// 这个array里面的值还是原来的
// 如果想要array里面的内容为转义之后的值,可以直接赋值
// $array = _addslashes($array);
Demo地址 : 转义