【php】json传值与php接收的几种情况,json几种情况利用chrome的后台网络,分析了通过jquery的$.ajax()把 json 数据 post 给 php时的几种情况:
无法在php中通过$_post 以及 $_request 获取json数据,即
$json = $_post['json']; // empty($json) 为1
注:php 默认只识别 application/x-www.form-urlencoded 标准的数据类型,因此,对型如 text/xml 或者 soap 或者 application/octet-stream 之类的内容无法解析,如果用 $_post 数组来接收就会失败。
情况a:js里没有加入属性contenttype: application/json; charset=utf-8,
var submit_sync = function() { $.ajax({ type: post, url: 'add-post-json.php', async: false, // 使用同步方式 // 1 需要使用json.stringify 否则格式为 a=2&b=3&now=14... // 2 需要强制类型转换,否则格式为 {a:2,b:3} data: json.stringify({ a: parseint($('input[name=a]').val()), b: parseint($('input[name=b]').val()), now: new date().gettime() // 注意不要在此行增加逗号 }), datatype: json, success: function(data) { $('#result').text(data.result); } // 注意不要在此行增加逗号 });}
使用 $globals['http_raw_post_data'] 后无法获取到数据,即$json = $globals['http_raw_post_data']; // empty($json) 为 1
使用file_get_contents(php://input); 可以获取数据,即$json = file_get_contents(php://input); // empty($json) 为 0
情况b:js里加入属性contenttype: application/json; charset=utf-8,
var submit_sync = function() { $.ajax({ type: post, url: 'add-post-json.php', async: false, // 使用同步方式 // 1 需要使用json.stringify 否则格式为 a=2&b=3&now=14... // 2 需要强制类型转换,否则格式为 {a:2,b:3} data: json.stringify({ a: parseint($('input[name=a]').val()), b: parseint($('input[name=b]').val()), now: new date().gettime() // 注意不要在此行增加逗号 }), contenttype: application/json; charset=utf-8,
datatype: json, success: function(data) { $('#result').text(data.result); } // 注意不要在此行增加逗号 }); }
使用 $globals['http_raw_post_data'] 后可以获取到数据,即$json = $globals['http_raw_post_data']; // empty($json) 为 0
使用file_get_contents(php://input); 可以获取数据,即$json = file_get_contents(php://input); // empty($json) 为 0
注:php://input 允许读取 post 的原始数据。和 $http_raw_post_data 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。php://input 不能用于 enctype=multipart/form-data。
情况c:是否加入以下
header('content-type:application/json;charset=utf-8');
对情况a与情况b的结果没有任何影响。
从5.2版本开始,php原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。下面这篇博客写的很详细,mark!
在php语言中使用json:http://www.ruanyifeng.com/blog/2011/01/json_in_php.html
http://www.bkjia.com/phpjc/972513.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/972513.htmltecharticle【php】json传值与php接收的几种情况,json几种情况 利用chrome的后台网络,分析了通过jquery的 $.ajax ()把 json 数据 post 给 php时的几种情况: 无...