首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析json时的随机错误

解析json时的随机错误
EN

Stack Overflow用户
提问于 2013-11-09 08:32:31
回答 1查看 155关注 0票数 0

我使用当前函数解析json文件:

代码语言:javascript
复制
   function getRemoteJson($uri, $decode=true, $noob=false){
     if($uri){
       $fp = fopen($uri, "r");
       $json = trim(file_get_contents($fp));
       fclose($fp);

      if($decode) return json_decode($json, true);
      else return $json;
      }
     else return false;
   }

这个文件运行得很好:http://webcast-a.live.sportingpulse.com/matches/3886/09/18/90/33S64Il4cTaxQ/data.json

但是,当我使用它时,它会返回null:http://webcast-a.live.sportingpulse.com/matches/3886/09/18/94/84Q4GEVlZs4rg/data.json

解析此文件时没有错误代码(即json_last_error()返回JSON_ERROR_NONE )

当我使用在线工具检查文件格式时,文件会被解析.

如果你有任何线索的话谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-10 08:31:08

好吧,我发现麻烦了..。我在另一台服务器上试了一下,发现了一个JSON_ERROR_UTF8错误。

因此,如果按以下方式修改代码:

代码语言:javascript
复制
function getRemoteJson($uri, $decode=true, $noob=false, $utf8_error = false){
 if($uri):
   $fp = fopen($uri, "r");
   if($utf8_error) $json = utf8_encode(trim(stream_get_contents($fp))); 
        else $json = trim(stream_get_contents($fp)); 
        fclose($fp);

        $data = json_decode($json, true);

        if(is_array($data)) return $data;   

        else
            if(!$utf8_error) return getRemoteJson($uri, $decode, true, true);
            else return false;
    else:
        return false;
    endif;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19873986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档