Home  >  Article  >  Backend Development  >  PHP JSON Chinese_PHP Tutorial

PHP JSON Chinese_PHP Tutorial

WBOY
WBOYOriginal
2016-07-13 17:52:07857browse

Using the json_encode() built-in function in php (php > 5.2) can be used so that the data in php can be transferred and used well with other languages.

The function of this function is to convert numerical values ​​into json data storage format.

[php]
$arr = array
(
          'Name'=>'Shia',
‘Age’=>20
);

$jsonencode = json_encode($arr);
echo $jsonencode;
?>

The results of running the program are as follows:

[php]
{"Name":null,"Age":20}

JSON_ENCODE function is encoded in NULL in Chinese. Google is very simple. In order to closely combine with the front end, JSON only supports UTF-8 coding. I think it is the reason for the front-end JavaScript.
[php]
$array = array
(
         'title'=>iconv('gb2312','utf-8','This is the Chinese title'),
        'body'=>'abcd...'
);

echo json_encode($array);
?>

The result of running this program is:

[php]
{"title":"u8fd9u91ccu662fu4e2du6587u6807u9898","body":"abcd..."}
All Chinese in the array disappeared after json_encode or U2353 appeared.

The solution is to use the urlencode() function to process the following. Before json_encode, use urlencode() to process all the contents of all arrays, then use json_encode() to convert it into a json string, and finally use urldecode() to Convert the encoded Chinese back.

[php] 
/***************************************************** **********
* www.2cto.com
* Use a specific function to process all elements in the array
* @param string &$array The string to be processed
* @param string $function The function to be executed
* @return boolean $apply_to_keys_also Whether to also apply to keys
* @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--; 

  
/***************************************************** **********
*
* Convert array to JSON string (compatible with Chinese)
* @param array $array The array to be converted
* @return string The converted json string
* @access public
*
*************************************************** ***********/ 
function JSON($array) { 
    arrayRecursive($array, 'urlencode', true); 
    $json = json_encode($array); 
    return urldecode($json); 

 
$array = array 
       ( 
          'Name'=>'希亚', 
          'Age'=>20 
       ); 
 
 
echo JSON($array); 
?> 

     这次成功了,运行结果如下:
[php] view plaincopy
{"Name":"希亚","Age":"20"} 
作者:wolinxuebin

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/478136.htmlTechArticle在 php 中使用 json_encode() 内置函数(php 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。 这个函数的功能是将数值转换成j...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn