码迷,mamicode.com
首页 > 其他好文 > 详细

递归方式的对变量中的特殊字符进行转义/去除转义

时间:2015-04-22 17:57:41      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

方法一:(循环)

/********************************************************************工具类*******************************************
     * 描述 : 深度加/删反斜杠
     * 参数 :
     *     &data : 指定替换的数组
     *      func : addslashes(默认)=添加反斜杠, stripslashes=删除反斜杠
     */
    public static function &slashesDeep(&$data, $func = ‘addslashes‘) {
        $waitList = array(&$data);                                                                                      //待处理列表

        do {
            $wk = key($waitList);
            $wv = &$waitList[$wk];
            unset($waitList[$wk]);

            if( is_array($wv) ) {
                $result = array();                                                                                      //结果列表
                foreach($wv as $k => &$v) {
                    $result[$func($k)] = &$v;
                    $waitList[] = &$v;
                }
                $wv = $result;
            } else if( is_string($wv) ) {
                $wv = $func($wv);
            }
        } while( !empty($waitList) );

        return $data;
    }

 

方法二:(递归)

/**
 * 递归方式的对变量中的特殊字符进行转义
 *
 * @access  public
 * @param   mix     $value
 *
 * @return  mix
 */
function addslashes_deep($value)
{
    if (empty($value))
    {
        return $value;
    }
    else
    {
        return is_array($value) ? array_map(‘addslashes_deep‘, $value) : addslashes($value);
    }
}

 

/**
 * 递归方式的对变量中的特殊字符去除转义
 *
 * @access  public
 * @param   mix     $value
 *
 * @return  mix
 */
function stripslashes_deep($value)
{
    if (empty($value))
    {
        return $value;
    }
    else
    {
        return is_array($value) ? array_map(‘stripslashes_deep‘, $value) : stripslashes($value);
    }
}

递归方式的对变量中的特殊字符进行转义/去除转义

标签:

原文地址:http://www.cnblogs.com/573583868wuy/p/4447950.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!