Heim  >  Artikel  >  Backend-Entwicklung  >  php读取json时无数据(为空)的解决方法,phpjson_PHP教程

php读取json时无数据(为空)的解决方法,phpjson_PHP教程

WBOY
WBOYOriginal
2016-07-11 10:36:191391Durchsuche

php读取json时无数据(为空)的解决方法,phpjson

在使用PHP调用一些json接口文件时 如果使用 file_get_contents 获取页面json数据后 

再使用json_decode()解析后 数据无法正常输出 这是的返回值为null

这是由于php的file_get_contents得到的数据前面有三个看不到的BOM字符,将php转码或设置头部编码为无BOM依旧无法解决

一种可行的办法就是:

<span><?php<br />$str</span> = <span>file_get_contents</span>('json接口地址'); <span>//</span><span>获取页面地址</span>
<span>$str</span> = <span>substr</span>(<span>$str</span>,3); <span>//</span><span>由于php问题file_get_contents得到的数据前面有三个看不到的BOM字符 使用substr函数提取第三个字符后的内容</span>
<span>$json</span> = json_decode(<span>$str</span>, <span>true</span>);<span>//</span><span>解析json代码 返回为 array 值</span>
<span>echo</span> <span>$json</span>['motd'];<span>//</span><span>以array 输出json中的 motd 数组</span>

 另外一种:

<?<span>php
</span><span>$str</span> = <span>file_get_contents</span>('json接口地址'); <span>//</span><span>获取页面地址</span>
<span>$json</span> = json_decode(<span>trim</span>(<span>$str</span>,<span>chr</span>(239).<span>chr</span>(187).<span>chr</span>(191)),<span>true</span>); <span>//</span><span>chr(239).chr(187).chr(191)在输出时 组成了utf8文件的bom头,之后用trim函数将其移除</span>
<span>print_r</span>(<span>$json</span>); <span>//</span><span>以array 输出json</span>

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1140692.htmlTechArticlephp读取json时无数据(为空)的解决方法,phpjson 在使用PHP调用一些json接口文件时 如果使用file_get_contents 获取页面json数据后 再使用json_decode(...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn