PHP处理Json字符串解码返回NULL的解决方法


Posted in PHP onSeptember 01, 2014

本文实例讲述了PHP处理Json字符串解码返回NULL的解决方法。分享给大家供大家参考之用。具体方法如下:

一般来说,php对json字符串解码使用json_decode()函数,第一个参数传字符串,第二个参数若为true,返回array;若为false,返回object。如果返回NULL,说明报错,输出json_last_error(),得到的整数值对应错误提示。如下图所示:

PHP处理Json字符串解码返回NULL的解决方法

json_last_error()比较常见的是整数4, 是json字符串在json_decode之前已不完整,所以语法错误。

那么一定是客户端提交的个别字符影响了json的格式,可以使用JS进行过滤,可以解决一般问题,主要过滤回车,空格,html标签。

实现代码如下:

/*
* 过滤函数
*/
function htmlEncode(str) {
 str = str.replace(/\s+/ig, '');
 str = str.replace(/&/g, '');
 str = str.replace(/</g, '');
 str = str.replace(/>/g, '');
 str = str.replace(/(?:t| |v|r)*n/g, '<br />');
 str = str.replace(/t/g, '    ');
 str = str.replace(/x22/g, '"');
 str = str.replace(/x27/g, ''');
 str = str.replace(/"/g, "");
 return str;
}

以上情况针对的是,你必须提交json字符串数据到服务端处理,只能在客户端进行过滤。

其它的json_decode($str)返回NULL的一些原因:

1.$str只能UTF-8编码

2.元素最后不能有逗号(与php的array不同)

3.元素不能使用单引号

4.元素值中间不能有空格和\n,必须替换

如果大家遇到了上述情况,可以按照以上方法处理一下。

PHP 相关文章推荐
WINDOWS 2000下使用ISAPI方式安装PHP
Sep 05 PHP
drupal 代码实现URL重写
May 04 PHP
深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
Jun 06 PHP
php实现插入排序
Mar 29 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
Aug 01 PHP
分享五个PHP7性能优化提升技巧
Dec 07 PHP
php等比例缩放图片及剪切图片代码分享
Feb 13 PHP
Joomla简单判断用户是否登录的方法
May 04 PHP
php微信开发接入
Aug 27 PHP
利用laravel+ajax实现文件上传功能方法示例
Aug 13 PHP
基于php数组中的索引数组和关联数组详解
Mar 12 PHP
Yii2框架中一些折磨人的坑
Dec 15 PHP
PHP实现更新中间关联表数据的两种方法
Sep 01 #PHP
重新认识php array_merge函数
Aug 31 #PHP
浅析PHP中strlen和mb_strlen的区别
Aug 31 #PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
Aug 28 #PHP
PHP实现数组递归转义的方法
Aug 28 #PHP
PHP之autoload运行机制实例分析
Aug 28 #PHP
php+MySQL判断update语句是否执行成功的方法
Aug 28 #PHP
You might like
php 中英文语言转换类
2011/09/07 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
php通过正则表达式记取数据来读取xml的方法
2015/03/09 PHP
详解Yii实现分页的两种方法
2017/01/14 PHP
让回调函数 showResponse 也带上参数的代码
2007/08/13 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
基于jquery的一个拖拽到指定区域内的效果
2011/09/21 Javascript
获取body标签的两种方法
2011/10/13 Javascript
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
JS+CSS简单树形菜单实现方法
2015/09/12 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
jQuery实现区域打印功能代码详解
2016/06/17 Javascript
JS面试题---关于算法台阶的问题
2016/07/26 Javascript
Bootstrap模态框调用功能实现方法
2016/09/19 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
微信小程序页面传值实例分析
2017/04/19 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
vue后台管理之动态加载路由的方法
2018/08/13 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
2020/01/12 Javascript
在vue中使用jsonp进行跨域请求接口操作
2020/10/29 Javascript
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
2019/03/05 Python
css3 flex实现div内容水平垂直居中的几种方法
2020/03/27 HTML / CSS
如何开发一个JQuery插件
2016/07/28 面试题
电子商务自荐书范文
2014/01/04 职场文书
优秀管理者事迹材料
2014/05/22 职场文书
三月法制宣传月活动总结
2014/07/03 职场文书
浅谈Nginx 中的两种限流方式
2021/03/31 Servers
如何用Laravel包含你自己的帮助函数
2021/05/27 PHP
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS
MySql如何将查询的出来的字段进行转换
2022/06/14 MySQL