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中文本数据翻页(留言本翻页)
Oct 09 PHP
PHP 采集程序原理分析篇
Mar 05 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
Apr 20 PHP
php 数据库字段复用的基本原理与示例
Jul 22 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
Jul 05 PHP
php函数实现判断是否移动端访问
Mar 03 PHP
CodeIgniter删除和设置Cookie的方法
Apr 07 PHP
如何使用微信公众平台开发模式实现多客服
Jan 06 PHP
抛弃 PHP 代价太高
Apr 26 PHP
PHP下 Mongodb 连接远程数据库的实例代码
Aug 30 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
Jul 03 PHP
你真的了解PHP中的引用符号(&)吗
May 12 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批量缩放图片的代码[ini参数控制]
2011/02/11 PHP
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
ajax+php控制所有后台函数调用
2015/07/15 PHP
php基础教程
2015/08/26 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
2019/04/10 PHP
非常不错的功能强大代码简单的管理菜单美化版
2008/07/09 Javascript
Javascript base64编码实现代码
2011/12/02 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
JS简单获取并修改input文本框内容的方法示例
2018/04/08 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
基于VUE实现判断设备是PC还是移动端
2020/07/03 Javascript
[13:18]《一刀刀一天》之DOTA全时刻21:详解TI新赛制 A队再露獠牙
2014/06/24 DOTA
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
python集合的创建、添加及删除操作示例
2019/10/08 Python
python matplotlib拟合直线的实现
2019/11/19 Python
使用python的turtle绘画滑稽脸实例
2019/11/21 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
详解canvas drawImage()方法绘制图片不显示的问题
2018/10/08 HTML / CSS
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
将时尚融入珠宝:Adornmonde
2019/10/17 全球购物
美国新娘礼品店:The Paisley Box
2020/09/08 全球购物
销售演讲稿范文
2014/01/08 职场文书
晚会主持词开场白
2014/03/17 职场文书
事业单位绩效考核实施方案
2014/03/27 职场文书
婚前协议书怎么写
2014/04/15 职场文书
植树节活动总结
2014/04/30 职场文书
绿色家庭事迹材料
2014/05/01 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
golang 实现两个结构体复制字段
2021/04/28 Golang
python基础入门之字典和集合
2021/06/13 Python
Mysql忘记密码解决方法
2022/02/12 MySQL