php配列をJSON文字列に変換(中国語対応)

4679 ワード

 /**************************************************************
     *
     *        JSON   (    )
     *  @param  array   $array            
     *  @return string           json   
     *  @access public
     *
     *************************************************************/
    function JSON($array) {
        $this->arrayRecursive($array, 'urlencode', true);
        $json = json_encode($array);
        return urldecode($json);
    }
   /**************************************************************
     *
     *      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)) {
                $this->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--;
    }

ソース、自分で測定して使いやすいです
転載先:https://www.cnblogs.com/hanshuai0921/p/7928984.html