PHP中json_decode()json格式接口的问题

本文探讨了PHP中使用json_decode()遇到的问题,特别是在Windows环境下从HTTP请求获取JSON数据时出现的错误。文中提供了如何检查和修复JSON字符串前缀多余字符的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHP中json_decode()json格式接口的问题
        首先
        $json = file_get_contents('http://127.0.0.1/index.php?r=index/test');
         echo $json;//这里是返回的正确的json格式,是双引号,UTF8无BOM格式,也没有转义字符,PHP也是5.4的版本
        $json = json_decode($json,true);
        //解码就null了
        
        原因:file_get_contents()得到的数据前面有三个看不到的字符(无BOM 也是没用的),所以只要将得到的字符串,substr($str,3)就行了
        $json = substr($json,3);

  注意,linux下不需要截取。


        
 

 以下是转载其他朋友在json_decode()时的一些情况和解决方法

http://www.blogjava.net/vagasnail/archive/2012/02/21/370400.html


json_decode有两个参数,第一个是待解析的字符串,第二个是是否解析为Array
该函数要求的字符串比较严格:
(1)使用UTF-8编码
(2)不能在最后元素有逗号
(3)不能使用单引号
(4)不能有\r,\t,如果有请替换
。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值