PHP与Ajax
2016-01-12 20:02
531 查看
如何用PHP接收JSON格式数据
1.一般来说,我们直接用$_POST $_REQUEST $_GET这样的超全局变量接收就好了
2.但是有时候我们希望转换下格式,比如说数组,这个时候我们就要用到json_decode()方法
先来模拟下前端向PHP发送Request的环境
然后我们用test.php来接收这个请求,并且把请求的data解析出来
json_decode可以将json字符串转化为数组,这样我们就可以逐条读取数据了,解析出来的数组是这样的
如何用PHP返回JSON格式数据
下面这句话必不可少。
总的来说,我们一般是在PHP中创建数组,然后用json_encode()方法把数组转化成json格式
需要注意的是,需要先把数组中的汉字内容进行编码转换,将GBK的编码转换为UTF-8,否则json_code()会将汉字转为NULL。(从utf-8数据库中取出的值不需要进行转化)
形式可参见如下代码
1.一般来说,我们直接用$_POST $_REQUEST $_GET这样的超全局变量接收就好了
<?php $obj_temp=$_POST['data']; echo $obj_temp['name']; ?>
2.但是有时候我们希望转换下格式,比如说数组,这个时候我们就要用到json_decode()方法
先来模拟下前端向PHP发送Request的环境
$(document).ready(function(){ var jsonText ='{"user":[{"username":"xx","password":"123"}, {"username":"yy","password":"456"}]}'; $("#testLink").click(function(){ $.post('test.php',{data:jsonText},function(data){ alert(data); }); }); });
然后我们用test.php来接收这个请求,并且把请求的data解析出来
<?php $arr = json_decode($_POST['data'],true); print_r($arr); ?>
json_decode可以将json字符串转化为数组,这样我们就可以逐条读取数据了,解析出来的数组是这样的
Array ( [user] => Array ( [0] => Array ( [username] => xx [password] => 123 ) [1] => Array ( [username] => yy [password] => 456 ) ) )
如何用PHP返回JSON格式数据
下面这句话必不可少。
header('Content-type: text/json');
总的来说,我们一般是在PHP中创建数组,然后用json_encode()方法把数组转化成json格式
<?php header('Content-type: text/json'); $fruits = array ( "fruits" => array("a" => "orange", "b" => "banana", "c" => "apple"), "numbers" => array(1, 2, 3, 4, 5, 6), "holes" => array("first", 5 => "second", "third") ); echo json_encode($fruits); ?>
需要注意的是,需要先把数组中的汉字内容进行编码转换,将GBK的编码转换为UTF-8,否则json_code()会将汉字转为NULL。(从utf-8数据库中取出的值不需要进行转化)
形式可参见如下代码
<?php while($row = $db->fetch_array($query)){ $row['uname'] = mb_convert_encoding($row['uname'],'utf-8','gbk'); $row['content'] = mb_convert_encoding($row['content'],'utf-8','gbk'); $com[] = $row; } echo json_encode($com); ?>
相关文章推荐
- php urlencode 和 urldecode
- 深入PHP多态的实现
- zip I/O error: Permission denied zip error: Could not create output file (/mnt/e/backup/201601120144
- PHP:POST接口,插入POST数据到mysql数据库
- windwos8.1中php环境配置方法
- 【转】理解 PHP 依赖注入 | Laravel IoC容器
- [动态改变控件形态] LayoutParams、FrameLayout、RelativeLayout等
- PHP 读取不到Cookies的可能原因分析
- 7.php策略模式
- 6.php职责链
- php 反射机制
- yii1.0 yii2.0 ar
- 命令行下执行php脚本
- php模拟宠物喂饱
- php随机显示是否中奖
- 查看php-fpm的进程和端口号
- PHP时间轴
- FTP笔记
- php 、cgi 、fastcgi 、php-fpm之间的运行原理和机制分享二
- Laravel添加事务