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 相关文章推荐
构建简单的Webmail系统
Oct 09 PHP
PHP新手上路(八)
Oct 09 PHP
php设计模式 Bridge (桥接模式)
Jun 26 PHP
php模板函数 正则实现代码
Oct 15 PHP
PHP统计二维数组元素个数的方法
Nov 12 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
May 04 PHP
php实现的树形结构数据存取类实例
Nov 29 PHP
PHP中让curl支持sock5的代码实例
Jan 21 PHP
PHP读MYSQL中文乱码的快速解决方法
Oct 01 PHP
简单谈谈PHP面向对象之标识对象
Jun 27 PHP
PHP _construct()函数讲解
Feb 03 PHP
Laravel配置全局公共函数的方法步骤
May 09 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输出控制功能在简繁体转换中的应用
2006/10/09 PHP
PHP生成HTML静态页面实例代码
2008/08/31 PHP
php select,radio和checkbox默认选择的实现方法
2010/05/15 PHP
php设计模式 Mediator (中介者模式)
2011/06/26 PHP
一个简单的php加密解密函数(动态加密)
2013/06/19 PHP
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
PHP使用curl_multi实现并发请求的方法示例
2018/04/29 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
2020/09/17 PHP
Javascript中暂停功能的实现代码
2007/03/04 Javascript
JS request函数 用来获取url参数
2010/05/17 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
2013/11/20 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
尝试动手制作javascript放大镜效果
2015/12/25 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
2016/12/03 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
jQuery中on方法使用注意事项详解
2017/02/15 Javascript
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
layui的table中显示图片方法
2018/08/17 Javascript
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
2020/01/03 Python
Python猜数字算法题详解
2020/03/01 Python
python实现贪吃蛇游戏源码
2020/03/21 Python
150行python代码实现贪吃蛇游戏
2020/04/24 Python
python 异步async库的使用说明
2020/05/04 Python
tensorflow使用CNN分析mnist手写体数字数据集
2020/06/17 Python
支票、地址标签、包装纸和慰问卡:Current Catalog
2018/01/30 全球购物
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
电子专业毕业生自我鉴定
2014/01/22 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书
2016应届大学生自荐信模板
2016/01/28 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python
项目中Nginx多级代理是如何获取客户端的真实IP地址
2022/05/30 Servers