recherche

Maison  >  Questions et réponses  >  le corps du texte

php - file_get_contents($url); entrée json

Utilisez file_get_contents($url); pour renvoyer json. Il ne peut pas être analysé avec json_decode. Que dois-je faire ? J'ai également utilisé la méthode curl, mais cela ne fonctionne pas

.
为情所困为情所困2842 Il y a quelques jours1001

répondre à tous(10)je répondrai

  • 淡淡烟草味

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

    Ce problème a été résolu par moi-même. Les données renvoyées par le tiers sont ascll, elles doivent donc être converties au format utf-8. Cela n'a rien à voir avec json_decode

    .

    répondre
    0
  • 大家讲道理

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

    Vous devez vérifier si le format est correct, ne téléchargez pas le code sur 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));
    

    répondre
    0
  • 滿天的星座

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

    Vérifiez d'abord si votre json est au format json normal
    Vérifiez ensuite si votre fichier php est en utf-8 sans BOM
    J'ai déjà rencontré des problèmes similaires, et tout ira bien après avoir supprimé la BOM~

    répondre
    0
  • 迷茫

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

    Envoyez les données renvoyées et jetez un œil

    répondre
    0
  • 伊谢尔伦

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

    Pas de problème, je l'ai analysé :

    répondre
    0
  • 世界只因有你

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

    json_decode($json, true)
    

    Avec true, cela signifie qu'il sera analysé dans un tableau de php

    répondre
    0
  • PHPz

    PHPz2017-05-16 13:00:39

    Confirmez d'abord. L'objet renvoyé est-il JSON ?

    répondre
    0
  • 为情所困

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

    Tout d'abord, assurez-vous que votre Json est échappé d'une autre manière. Sinon, vous pouvez utiliser l'outil de vérification du format Json pour vérifier s'il y a un problème.

    Outil de vérification du format Json en ligne
    http://www.bejson.com/

    répondre
    0
  • 習慣沉默

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

    Pas de problème, je vous suggère de le vérifier attentivement

    répondre
    0
  • 黄舟

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

    Vérifiez si le format de données JSON est correct

    répondre
    0
  • Annulerrépondre