萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP json

PHP json

   中文處理在php中處理總是不那麼完美經常會碰到中文處理時亂碼或為空問題,下面我在處理json時也碰到同樣的問題,後來整理一個完美解決 json_encode 中文亂碼或為空程序類。

 代碼如下  
/**************************************************************
    *
    * 使用特定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);
copyright © 萬盛學電腦網 all rights reserved