zoukankan      html  css  js  c++  java
  • 递归方式的对变量中的特殊字符进行转义/去除转义

    方法一:(循环)

    /********************************************************************工具类*******************************************
         * 描述 : 深度加/删反斜杠
         * 参数 :
         *     &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);
        }
    }

  • 相关阅读:
    lambda表达式
    Java的MongoDB驱动及读写策略
    MongDB主从复制、复制集
    PL/SQL练习
    MySQL数据库MyISAM和InnoDB存储引擎的比较(转)
    Java的垃圾回收概述
    springMVC源码浅析
    ActiveMQ使用总结
    常用的缓存产品比较
    Nginx+tomcat负载均衡并动静态分离
  • 原文地址:https://www.cnblogs.com/573583868wuy/p/4447950.html
Copyright © 2011-2022 走看看