zoukankan      html  css  js  c++  java
  • php 数组转字符串 防止json乱码

    <?php
    /**************************************************************
     *
     * 使用特定function对数组中所有元素做处理
     * @param string &$array  要处理的字符串
     * @param string $function 要执行的函数
     * @return boolean $apply_to_keys_also  是否也应用到key上
     * @access public
     *
     *************************************************************/
    function array_recursive(&$array, $function, $apply_to_keys_also = false,$number_check=0)
    {
        static $recursive_counter = 0;
        if (++$recursive_counter > 1000) {
            die('possible deep recursion attack');
        }
        foreach ($array as $key => $value) {
            if(is_numeric($value) && $number_check==1){
                $value=(float)$value;
            }
            if (is_array($value)) {
                array_recursive($array[$key], $function, $apply_to_keys_also);
            } else {
                $value=str_replace('"','"',$value);//处理数组中包含JSON数据
                $array[$key] = $function($value);
            }
     
            if ($apply_to_keys_also && is_string($key)) {
                $new_key = $function($key);
                if ($new_key != $key) {
                    $array[$new_key] = $array[$key];
                    unset($array[$key]);
                }
            }
        }
        $recursive_counter--;
    }
    
    
    /**************************************************************
     *
     * 将数组转换为JSON字符串(兼容中文)
     * @param array $array  要转换的数组
     * @return string  转换得到的json字符串
     * @access public
       *number_check——生成json时纯数字是否要去掉引号1是0否
     *************************************************************/
    function array_to_json($array,$number_check=0) {
        array_recursive($array, 'urlencode', true);
        if($number_check==1){
            $json = json_encode($array,JSON_NUMERIC_CHECK);    
        }else{
            $json = json_encode($array);
        }
        return urldecode($json);
    }
  • 相关阅读:
    DATA_PUMP_DIR impdp 指定导出目录
    MasScan
    VMWare:vSphere6 企业版参考序列号
    ORA-12519: TNS:no appropriate service handler found 解决
    百度IOT
    IPMI远程管理一点记录
    关于parallel(并行)的几个基本常识
    hdu 4811 数学 不难
    关于i++ 和 ++i
    sqlplus中怎么将你全部的操作和结果记录保存到你指定的文件里
  • 原文地址:https://www.cnblogs.com/chengfengchi/p/12619238.html
Copyright © 2011-2022 走看看