PHP json_encode() 函数介绍
在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。
这个函数的功能是将数值转换成json数据存储格式。
01
|
<?php
|
02
|
$arr = array
|
03
|
(
|
04
|
'Name' => '希亚' ,
|
05
|
'Age' =>20
|
06
|
);
|
07
|
08
|
$jsonencode = json_encode( $arr );
|
09
|
echo $jsonencode ;
|
10
|
?>
|
程序运行结果如下:
1
|
{ "Name" :null, "Age" :20}
|
json_encode 函数中中文被编码成 null 了,Google 了一下,很简单,为了与前端紧密结合,Json 只支持 utf-8 编码,我认为是前端的 Javascript 也是 utf-8 的原因。
1
|
<?php
|
2
|
$array = array
|
3
|
(
|
4
|
'title' =>iconv( 'gb2312' , 'utf-8' , '这里是中文标题' ),
|
5
|
'body' => 'abcd...'
|
6
|
);
|
7
|
8
|
echo json_encode( $array );
|
9
|
?>
|
这个程序的运行结果为:
1
|
{ "title" : "\u8fd9\u91cc\u662f\u4e2d\u6587\u6807\u9898" , "body" : "abcd..." }
|
数组中所有中文在json_encode之后都不见了或者出现\u2353等。
解决方法是用urlencode()函数处理以下,在json_encode之前,把所有数组内所有内容都用urlencode()处理一下,然用json_encode()转换成json字符串,最后再用urldecode()将编码过的中文转回来。
01
|
<?php
|
02
|
/**************************************************************
|
03
|
*
|
04
|
* 使用特定function对数组中所有元素做处理
|
05
|
* @param string &$array 要处理的字符串
|
06
|
* @param string $function 要执行的函数
|
07
|
* @return boolean $apply_to_keys_also 是否也应用到key上
|
08
|
* @access public
|
09
|
*
|
10
|
*************************************************************/
|
11
|
function arrayRecursive(& $array , $function , $apply_to_keys_also = false)
|
12
|
{
|
13
|
static $recursive_counter = 0;
|
14
|
if (++ $recursive_counter > 1000) {
|
15
|
die ( 'possible deep recursion attack' );
|
16
|
}
|
17
|
foreach ( $array as $key => $value ) {
|
18
|
if ( is_array ( $value )) {
|
19
|
arrayRecursive( $array [ $key ], $function , $apply_to_keys_also );
|
20
|
} else {
|
21
|
$array [ $key ] = $function ( $value );
|
22
|
}
|
23
|
|
24
|
if ( $apply_to_keys_also && is_string ( $key )) {
|
25
|
$new_key = $function ( $key );
|
26
|
if ( $new_key != $key ) {
|
27
|
$array [ $new_key ] = $array [ $key ];
|
28
|
unset( $array [ $key ]);
|
29
|
}
|
30
|
}
|
31
|
}
|
32
|
$recursive_counter --;
|
33
|
}
|
34
|
|
35
|
/**************************************************************
|
36
|
*
|
37
|
* 将数组转换为JSON字符串(兼容中文)
|
38
|
* @param array $array 要转换的数组
|
39
|
* @return string 转换得到的json字符串
|
40
|
* @access public
|
41
|
*
|
42
|
*************************************************************/
|
43
|
function JSON( $array ) {
|
44
|
arrayRecursive( $array , 'urlencode' , true);
|
45
|
$json = json_encode( $array );
|
46
|
return urldecode( $json );
|
47
|
}
|
48
|
49
|
$array = array
|
50
|
(
|
51
|
'Name' => '希亚' ,
|
52
|
'Age' =>20
|
53
|
);
|
54
|
55
|
56
|
echo JSON( $array );
|
57
|
?>
|
这次成功了,运行结果如下:
1
|
{ "Name" : "希亚" , "Age" : "20" }
|
转载于:https://www.cnblogs.com/moqiang02/p/4061406.html
PHP json_encode() 函数介绍相关推荐
- python3 转码的函数_python基础3之文件操作、字符编码解码、函数介绍
内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...
- C语言中的scanf()函数介绍
1.scanf函数:读取从键盘输入的数据 在C语言中,有多个函数可以从键盘获得用户输入: scanf():和 printf() 类似,scanf() 可以输入多种类型的数据 getchar().get ...
- 延时函数介绍和呼吸灯的实现
文章目录 延时函数介绍 呼吸灯原理 杨桃32学习笔记,本文图片文字皆为转述 延时函数介绍 分为delay_s秒,delay_ms毫秒,delay_us微秒延时,最大参数不能超过65535. 呼吸灯原理 ...
- ×××S 2012 参照函数 -- 介绍
×××S 2012 参照函数 -- 介绍 在×××S中,一张报表内可以同时包含多个数据集,但是一个数据区域就仅限于一个数据集,如果希望同时参考多个数据集,查找函数就能轻松办到,其概念类似JOIN是通过 ...
- 【 MATLAB 】rem 函数介绍
rem函数和mod函数很相似,二者认真看一个,另一个看一下区别即可. mod函数介绍:[ MATLAB ]mod 函数介绍 rem Remainder after division Syntax r ...
- 【 MATLAB 】filter 函数介绍 之 Filter Data in Sections
[ MATLAB ]filter 函数介绍(一维数字滤波器) 在上篇博文中,里面有一个例子,就是过滤部分中的数据,这个部分中的数据的意思是如果有一个向量需要过滤,我们可以把它分为几段,然后分段过滤. ...
- swift1.2语言函数和闭包函数介绍
swift1.2语言函数和闭包函数介绍 在编程中,随着处理问题的越来越复杂,代码量飞速增加.其中,大量的代码往往相互重复或者近似重复.如果不采有效方式加以解决,代码将很难维护. swift1.2语言函 ...
- 微信 php 接口 函数,PHP的json_encode函数应用到微信接口有关问题(include \uxxxx will create fail)...
PHP的json_encode函数应用到微信接口问题(include \uxxxx will create fail) 今天学习了一下微信企业号发送消息的接口,发现在发送含有中文字符的信息时,微信接口 ...
- php函数介绍,PHP函数介绍_PHP教程
PHP函数介绍 基本使用: 函数定义形式: function 函数名(形参1,形参2,...) { //函数体(代码块): } 函数调用形式: 本质上就是使用一个名字来达到执行其中函数中的的作用.通常 ...
最新文章
- linux存储--虚拟内存详解MMU、页表(十)
- mysql 5.0 乱码_MySQL 5.0.16 乱码问题处理办法
- Endnote生成的中英文混排参考文献中“等”与“et al”的处理
- python多维数组初始化后赋值的问题
- 不忽略空值null的聚合函数_sqlzoo 练习题答案 聚合函数 和 空值 部分
- 不招聘数据科学家的 7 个理由!
- 浅谈TCP优化(转)
- CFS 调度器学习笔记
- unity 运行时间问题
- 对象和map的相互转换
- 英语打字练习软件-c语言编写
- 【安卓开发 身份录入系统 APP】
- Ruby ERB注入反序列化
- ros学习记录1 Hello World 使用c++
- python如何画神经网络特征图
- JS学习108-161
- python发票二维码条码识别_Python实现二维码、条形码识别
- 通过Timer和UpdatePanel控件实现NBA比赛的文字直播
- seo搜索引擎优化,seo搜索引擎优化名词解释
- 《淘宝网开店 拍摄 修图 设计 装修 实战150招》一一1.9 逆光拍摄透明体
热门文章
- CSS3新的鼠标样式介绍
- 网站性能优化之应用程序缓存-初篇
- ajax后台如何把对象转为json_57. Django 2.1.7 查询数据返回json格式
- 用户方式中线程的同步——Windows核心编程学习手札之八
- r语言x%3c-读取文件,R语言读写最灵活的文件——txt文件
- 列举出php代码级的优化技巧,php 代码优化的42条建议 推荐
- python中的栈结构_对Python列表进行封装和二次开发实现自定义栈结构
- 50. Pow(x, n)
- profiles 配置详解
- 获取请求参数通用方式|| 中文乱码问题||请求转发