搜尋

首頁  >  問答  >  主體

php - file_get_contents($url); 輸入json

使用file_get_contents($url); 回傳json 使用json_decode 無法解析,該怎麼辦 ,curl 方法也用過,都不管用

为情所困为情所困2827 天前984

全部回覆(10)我來回復

  • 淡淡烟草味

    淡淡烟草味2017-05-16 13:00:39

    這個問題自己解決了,第三方回傳的資料是ascll的所以需要轉換成utf-8格式 就可以了,跟json_decode沒關係

    回覆
    0
  • 大家讲道理

    大家讲道理2017-05-16 13:00:39

    你需要校驗格式是否正確, 不BB上代碼:

    <?php
    function treatJsonString($string)
    {
        $jsonData = json_decode($string, true);
    
        switch (json_last_error()) {
            case JSON_ERROR_NONE:
                return $jsonData;
                break;
            case JSON_ERROR_DEPTH:
                print '[Error] - Maximum stack depth exceeded' . PHP_EOL;
                break;
            case JSON_ERROR_STATE_MISMATCH:
                print '[Error] - Underflow or the modes mismatch' . PHP_EOL;
                break;
            case JSON_ERROR_CTRL_CHAR:
                print '[Error] - Unexpected control character found' . PHP_EOL;
                break;
            case JSON_ERROR_SYNTAX:
                print '[Error] - Syntax error, malformed JSON' . PHP_EOL;
                break;
            case JSON_ERROR_UTF8:
                print '[Error] - Malformed UTF-8 characters, possibly incorrectly encoded' . PHP_EOL;
                break;
            default:
                print '[Error] - Unknown error' . PHP_EOL;
                break;
        }
        return null;
    }
    
    
    $jsonString = '{"x":123,"s":[{"a":"1"}]';
    
    var_dump(treatJsonString($jsonString));
    

    回覆
    0
  • 滿天的星座

    滿天的星座2017-05-16 13:00:39

    先你看下你的這個json是不是正常的json格式
    然後看看你的php檔案是否為utf-8 無BOM的
    以前也遇到過類似的問題,去掉bom以後就好使了~

    回覆
    0
  • 迷茫

    迷茫2017-05-16 13:00:39

    把回傳的資料寄上來看看

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:00:39

    沒問題啊,我就解析了出來:

    回覆
    0
  • 世界只因有你

    世界只因有你2017-05-16 13:00:39

    json_decode($json, true)
    

    帶true表示解析成為php的array

    回覆
    0
  • PHPz

    PHPz2017-05-16 13:00:39

    首先要確認。回傳的東西是不是json

    回覆
    0
  • 为情所困

    为情所困2017-05-16 13:00:39

    先確定一下你的Json有沒有其他方式的轉義,如果沒有可以用Json格式化校驗工具檢測一下是否有問題。

    線上Json格式化校驗工具
    http://www.bejson.com/

    回覆
    0
  • 習慣沉默

    習慣沉默2017-05-16 13:00:39

    沒問題啊,建議樓主仔細檢查檢查

    回覆
    0
  • 黄舟

    黄舟2017-05-16 13:00:39

    仔細檢查JSON資料格式是否正確

    回覆
    0
  • 取消回覆