We all know that PHP Json_encode () function is a built-in function, php5.2 more than the version can be used, the Json_encode () function is used in PHP data can be very good with other languages to pass and use it. Today we will introduce you to the PHP Son_encode () Function!
The function is to convert a numeric value into a JSON data storage format.
<?php$arr = array ( ' Name ' = ' Shia ', ' age ' =>20 ); $jsonencode = Json_encode ($arr); echo $ Jsonencode;? >
The results of the program run as follows:
{"Name": null, "Age": 20}
Json_encode function in Chinese is encoded as NULL, Google a bit, very simple, in order to closely integrate with the front, Json only support utf-8 encoding, I think is the front-end Javascript is also the reason for Utf-8.
<?php$array = Array (' title ' =>iconv (' gb2312 ', ' utf-8 ', ' Here is the Chinese title '), ' body ' = ' abcd ... '); Echo Json_encode ($ Array);? >
The result of this program is:
{"title": "\u8fd9\u91cc\u662f\u4e2d\u6587\u6807\u9898", "Body": "ABCD ..."}
All the Chinese in the array have disappeared after the Json_encode, or appear \u2353.
The workaround is to use the UrlEncode () function to handle the following, before Json_encode, all the contents of all arrays are processed with UrlEncode (), and then converted to a JSON string with Json_encode (), and then UrlDecode () Turn the encoded Chinese back.
<?php/************************************************************** * * Handle all elements in an array with a specific function * @paramstring & $array The string to be processed * @paramstring $function function to execute * @return Boolean$apply_to_keys_also is also applied to the key * @access public * * * * * * * /function arrayrecursive (& $array, $function, $apply _ To_keys_also = False) {static $recursive _counter = 0; if (+ + $recursive _counter >) {die (' possible deep recursion attack '); } foreach ($array as $key = + $value) {if (Is_array ($value)) {arrayrecursive ($array [$key], $funct Ion, $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 an array to a JSON string (Chinese language compatible) * @paramarray $array the array to convert * @return The JSON string converted by String * @access public * *************************************************************/function JSON ($ Array) {arrayrecursive ($array, ' UrlEncode ', true); $json = Json_encode ($array); return UrlDecode ($json);} $array = Array (' Name ' = ' Shia ', ' age ' =>20); Echo JSON ($array); >
This success, the results of the operation are as follows:
{"Name": "Shia", "Age": "20"}
Summarize:
I believe that people through the text of the sample learning, PHP Json_encode () function has a further understanding of the hope that your work is helpful!
Related recommendations:
PHP Json_encode () does not output Chinese
PHP Json_encode () function and Chinese garbled problem
Introduction to the PHP Json_encode () function