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 相关文章推荐
PHP+MYSQL的文章管理系统(二)
Oct 09 PHP
php 获取远程网页内容的函数
Sep 08 PHP
使用dump函数,给php加断点测试
Jun 25 PHP
PHP内核探索:变量概述
Jan 30 PHP
thinkphp实现多语言功能(语言包)
Mar 04 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
Dec 19 PHP
详解php中反射的应用
Mar 15 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
Nov 15 PHP
PHP实现唤起微信支付功能
Feb 18 PHP
PHP实现数组和对象的相互转换操作示例
Mar 20 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 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读取csv数据保存到数组的方法
2015/01/03 PHP
PHP魔术方法的使用示例
2015/06/23 PHP
PHP中通过trigger_error触发PHP错误示例
2015/06/23 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
2019/09/23 PHP
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
利用js动态添加删除table行的示例代码
2013/12/16 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
2015/04/06 Javascript
Vue.js之slot深度复制详解
2017/03/10 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
js实现左右轮播图
2020/01/09 Javascript
JavaScript实现PC端四格密码输入框功能
2020/02/19 Javascript
[49:02]KG vs Infamous 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
简单谈谈python中的语句和语法
2017/08/10 Python
python读取excel表格生成erlang数据
2017/08/26 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
python 读取视频,处理后,实时计算帧数fps的方法
2018/07/10 Python
Python 利用scrapy爬虫通过短短50行代码下载整站短视频
2018/10/29 Python
Python with标签使用方法解析
2020/01/17 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
模范教师事迹材料
2014/02/10 职场文书
2014学雷锋活动总结
2014/03/09 职场文书
激情洋溢的毕业生就业求职信
2014/03/15 职场文书
低碳环保口号
2014/06/12 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
三好学生事迹材料
2014/12/24 职场文书
个人思想政治总结
2015/03/05 职场文书
用电申请报告范文
2015/05/18 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
电台广播稿范文
2015/08/19 职场文书
HTML基础详解(上)
2021/10/16 HTML / CSS
mysql主从复制的实现步骤
2021/10/24 MySQL