php - file_get_contents($url); entrée json
为情所困
为情所困 2017-05-16 12:58:39
0
10
952

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

.
为情所困
为情所困

répondre à tous(10)
淡淡烟草味

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

.
大家讲道理

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));
滿天的星座

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~

迷茫

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

伊谢尔伦

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

世界只因有你
json_decode($json, true)

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

PHPzhong

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

为情所困

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/

習慣沉默

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

黄舟

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal