PHP stripslashes 函数

一、函数功能:
  addslashes的反向操作,移除addslashes()函数添加的转义反斜杠字符。

二、函数语法:
string stripslashes($str)

三、函数参数:
参数描述
$str要移除转义反斜杠的字符串。

四、返回值:
返回移除转义反斜杠后的字符串

五、用法举例:
1、基本用法:
<?php
$str = "it\'s";
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

$str = '欢迎来到\"爱E族:aiezu.com\"';
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

$str = 'abc\\ndef';
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));
输出:
it\'s >转换为-> it's
欢迎来到\"爱E族:aiezu.com\" >转换为-> 欢迎来到"爱E族:aiezu.com"
abc\ndef >转换为-> abcndef

 
2、移除规则:
<?php
#一个斜杠时移除斜杠
$str = "it\\'s"; #每两个斜杠转为一个斜杠,变量$str值只包含一个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续两个斜杠时移除一个斜杠
$str = "\\\\"; #此处变量$str值实际为两个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续三个斜杠时移除两个斜杠
$str = "\\\\\\"; #此处变量$str值实际为三个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续四个斜杠时移除个斜杠
$str = "\\\\\\\\"; #此处变量$str值实际为四个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));
输出:
it\'s >转换为-> it's
\\ >转换为-> \
\\\ >转换为-> \
\\\\ >转换为-> \\
 
3、移除多维数组值的反斜杠:
<?php
function array_stripslashes( $array ){
    if(is_array($array) ){
        foreach($array as $key=>&$value){
            $value=array_stripslashes($value);
        }
        return $array;
    }else{
        return stripslashes($array);
    }
}
$arr = array(
    'aa'=>"爱E族"
   ,'ab'=>array(
         'ba'=>"\'aiezu.com\'"
        ,'bb'=>"Is\'t a book?"
    )
);
$arr = array_stripslashes($arr);
print_r($arr);
输出:
Array
(
    [aa] => 爱E族
    [ab] => Array
        (
            [ba] => 'aiezu.com'
            [bb] => Is't a book?
        )
)

4、stripslashes与stripcslashes的区别:
  stripslashes()是简单的移除反斜杠,而stripcslashes()会将"\"开头的八进制、十六进制转换为对应的ASCII字符:
<?php
#爱E族: aiezu.com
$str = "\\x41";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));

$str = "\\102";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));
输出:
\x41 stripslashes:x41 stripcslashes:A
\102 stripslashes:102 stripcslashes:B
 

0 个评论

要回复文章请先登录注册