JSON

PHP POST获取的JSON使用json_decode返回NULL(2)

字号+ 作者:H5之家 来源:H5之家 2016-12-13 12:03 我要评论( )

(4)能想的办法都想了,就是解决不了,网上有些网友说是BOM问题,但是又有网友说UTF-8字符集不存在BOM,总结起来就是从POST获取的字符串会比变量定义的相同字符串多几个字符。这些字符不是空格、换行、TAB之类的,

(4)能想的办法都想了,就是解决不了,网上有些网友说是BOM问题,但是又有网友说UTF-8字符集不存在BOM,总结起来就是从POST获取的字符串会比变量定义的相同字符串多几个字符。这些字符不是空格、换行、TAB之类的,所以看不到,也不占视觉空间,所以,看起来跟不存在一样。真的是这样吗?我们做个验证就知道了。思路是,将从POST获取到的JSON字符串的长度打印出来,同时将JSON字符串值作为变量,长度也打印出来,看看二者是否一致。

<span>$userReg = do_post_request($url, $data); echo $userReg."<br>"; echo "[1]userReg's length = ".strlen($userReg)."<br>"; $userReg = '{"resultcode":"6","resultdesc":"the userid already exists"}'; echo $userReg."<br>"; echo "[2]userReg's length = ".strlen($userReg)."<br>";</span>

打印结果如下:

{"resultcode":"6","resultdesc":"the userid already exists"}

[1]userReg's length = 62
{"resultcode":"6","resultdesc":"the userid already exists"}
[2]userReg's length = 59

从打印结果来看,两个JSON字符串打印出来,视觉上看起来长度确实是一样的。但是打印出来的长度确有差异!从POST获取的JSON字符串长度,要比变量JSON字符串长度多出来3个字符!

这样看起来,从POST获取的JSON字符串不做任何处理的话,确实有问题,由于有些网友说UTF-8不存在BOM问题,所以,此处我也无法确定这三个字符是不是BOM信息,因为我对WEB开发一窍不通啊哈哈。

不过,既然问题找出来了,解决起来就简单了,就是将POST信息头部多出来的无法看到的3个字节给去掉:

$userReg = substr($userReg, 3);

这个问题,对于我这种初学者确实很奇葩,上天无路入地无门的节奏,但是翻阅了网上无数大神的帖子和博客,找出来问题,解决起来也就是一行简单的取子字符串代码的问题。

最后,我个人对WEB开发一窍不通,刚开始学习,但是既然遇到了BOM问题,那么下面援引网上的一段对BOM的介绍,算是扩展知识吧:

DOM:(Document Object Model) 文档对象模型。BOM:(Browser Object Mode) 浏览器对象模型。从上面的对比中,可以很清晰的看出,BOM与DOM的最大区别既是B(Browser)和D(Document)的区别,那Browser和Document有什么差别呢,从下面的一张图上看,DOM的根节点是document。经常编写JavaScript代码,也许你会想到window对象,为啥DOM里面没有window,这就是BOM与DOM的区别了,window是JavaScript的顶端对象之一,它是隶属于浏览器层次的,它独立于文档内容与浏览器之间。

BOM解析:

1. BOM是browser object model的缩写,简称浏览器对象模型

2. BOM提供了独立于内容而与浏览器窗口进行交互的对象

3. 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window

4. BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性

5. BOM缺乏标准,JavaScript语法的标准化组织是ECMA,DOM的标准化组织是W3C

6. BOM最初是Netscape浏览器标准的一部分BOM结构图window对象是BOM的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以称为window的子对象。



 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • PHP浅析JSON使用技巧

    PHP浅析JSON使用技巧

    2016-12-12 11:00

  • JSP读取POST传来的JSON数据

    JSP读取POST传来的JSON数据

    2016-12-12 10:00

  • json 设计规则

    json 设计规则

    2016-12-11 18:02

  • jQuery.parseJSON vs JSON.parse

    jQuery.parseJSON vs JSON.parse

    2016-12-11 16:00

网友点评
p