PHP 中使用 json_encode() 内置函数(PHP > 5.2)可以使用得 PHP 中数据可以与其它语言很好的传递并且使用它,这个函数的功能是将数值转换成json数据存储格式.
- $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
- echo json_encode($arr);
- //结果
- //{a:1,b:2,c:3,d:4,e:5}
下面看一款json_encode中文乱码问题:
解决方法是用urlencode()函数处理以下,在json_encode之前,把所有数组内所有内容都用urlencode()处理一下,然用json_encode()转换成json字符串,最后再用urldecode()将编码过的中文转回来.
- 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], $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'=>20
- );
- echo json($array);
应用实例:
- $servname=localhost;
- $sqlservname=root;
- $sqlservpws=123456;
- $sqlname=lock1;
- $db=MysqL_connect($servname,$sqlservname,$sqlservpws) or die(数据库连接失败);
- MysqL_select_db($sqlname,$db);
- $sql = select * from t_operater;
- $result =MysqL_query($sql);
- $rows = MysqL_num_rows($result);
- while($obj = MysqL_fetch_object($result))
- {
- $arr[] = $obj;
- }
- echo '({total:'.$rows.',results:'.json_encode($arr).'})';
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。