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中的Class的几点个人看法
Oct 09 PHP
PHP获取url的函数代码
Aug 02 PHP
说说PHP的autoLoad自动加载机制
Sep 27 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
Apr 15 PHP
数组与类使用PHP的可变变量名需要的注意的问题
Jun 20 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
Mar 07 PHP
php实现读取和写入tab分割的文件
Jun 01 PHP
PHP实现图片自动清理的方法
Jul 08 PHP
Yii框架上传图片用法总结
Mar 28 PHP
LAMP环境使用Composer安装Laravel的方法
Mar 25 PHP
PHP自定义序列化接口Serializable用法分析
Dec 29 PHP
laravel-admin自动生成模块,及相关基础配置方法
Oct 08 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
屏蔽浏览器缓存另类方法
2006/10/09 PHP
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
防止用户利用PHP代码DOS造成用光网络带宽
2011/03/01 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
Laravel5.1 框架响应基本用法实例分析
2020/01/04 PHP
解决FireFox下[使用event很麻烦]的问题
2006/11/26 Javascript
javascript 学习笔记(八)javascript对象
2011/04/12 Javascript
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
纯js实现无限空间大小的本地存储
2015/06/18 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
AngularJS 所有版本下载地址
2016/09/14 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
thinkjs之页面跳转同步异步操作
2017/02/05 Javascript
JQuery实现图片轮播效果
2017/05/08 jQuery
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
在vue中动态修改css其中一个属性值操作
2020/12/07 Vue.js
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
python发送伪造的arp请求
2014/01/09 Python
python中利用Future对象回调别的函数示例代码
2017/09/07 Python
python实现彩票系统
2020/06/28 Python
Django ORM 聚合查询和分组查询实现详解
2019/08/09 Python
8款使用 CSS3 实现超炫的 Loading(加载)的动画效果
2015/03/17 HTML / CSS
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
大学生自我鉴定范文
2013/12/28 职场文书
《燕子》教学反思
2014/02/18 职场文书
2014党委书记四风问题对照检查材料思想汇报
2014/09/22 职场文书
小区保洁员岗位职责
2015/04/10 职场文书
小学大队长竞选稿
2015/11/20 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书