>php教程 >PHP源码 >PHP json_encode 中文处理类实例

PHP json_encode 中文处理类实例

WBOY
WBOY원래의
2016-06-08 17:22:451021검색

中文处理在php中处理总是不那么完美经常会碰到中文处理时乱码或为空问题,下面我在处理json时也碰到同样的问题,后来整理一个完美解决 json_encode 中文乱码或为空程序类。

<script>ec(2);</script>
 代码如下 复制代码

/**************************************************************
    *
    * 使用特定function对数组中所有元素做处理
    * @param string &$array 要处理的字符串
    * @param string $function 要执行的函数
    * @return boolean $apply_to_keys_also 是否也应用到key上
    * @access public
    *
    *************************************************************/
    function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
    {
    static $recursive_counter = 0;
    if (++$recursive_counter > 1000) {
    die('possible deep recursion attack');
    }
    foreach ($array as $key => $value) {
    if (is_array($value)) {
    arrayRecursive($array[$key], $function, $apply_to_keys_also);
    } else {
    $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
    *
    *************************************************************/
    function JSON($array) {
    arrayRecursive($array, 'urlencode', true);
    $json = json_encode($array);
    return urldecode($json);
    }
    
    $array = array
    (
    'Name'=>'络恩',
    'Age'=>24
    );
    
    
    echo JSON($array);
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.