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数组函数
Aug 18 PHP
mysql5的sql文件导入到mysql4的方法
Oct 19 PHP
PHP simple_html_dom.php+正则 采集文章代码
Dec 24 PHP
服务器web工具 php环境下
Dec 29 PHP
PHP导入Excel到MySQL的方法
Apr 23 PHP
PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
Jul 02 PHP
php数组合并array_merge()函数使用注意事项
Jun 19 PHP
本地计算机无法启动Apache故障处理
Aug 08 PHP
PHP实现简单的新闻发布系统实例
Jul 28 PHP
Laravel 模型关联基础教程详解
Sep 17 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
Mar 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和C#可共用的可逆加密算法详解
2015/10/26 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
文本框获得焦点和失去焦点的判断代码
2012/03/18 Javascript
jQuery Tools Dateinput使用介绍
2012/07/14 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
实例讲解避免javascript冲突的方法
2016/01/03 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
2017/09/01 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
2020/03/10 Javascript
前端vue如何使用高德地图
2020/11/05 Javascript
Python更新数据库脚本两种方法及对比介绍
2017/07/27 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
利用Django-environ如何区分不同环境
2018/08/26 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
python设置环境变量的作用和实例
2019/07/09 Python
python 的topk算法实例
2020/04/02 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
css3实现二维码扫描特效的示例
2020/10/29 HTML / CSS
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
三星法国官方网站:Samsung法国
2019/10/31 全球购物
迪斯尼假期(欧洲、中东及非洲):Disney Holidays EMEA
2021/02/15 全球购物
一年级班主任寄语
2014/01/19 职场文书
机关办公室岗位职责
2014/04/16 职场文书
大学班级文化建设方案
2014/05/06 职场文书
大学专科求职信
2014/07/02 职场文书
铅球加油稿100字
2014/09/26 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
车间班组长竞聘书
2015/09/15 职场文书
pandas中pd.groupby()的用法详解
2022/06/16 Python