Intereting Posts
Отправка XML-ввода в WSDL с использованием SoapClient CakePHP 1.3 не содержит правильных ассоциаций Команды не синхронизированы; вы не можете запустить эту команду сейчас, когда я запускаю цикл Получите все совпадения от строки, начинающейся с и заканчивая, используя php Как мне повторить попытку PHP flock () в течение определенного периода времени? Symfony2 + Twig, переменная в переводе возвращает «Сообщение должно быть простым текстом» Как установить расширение Intl для Twig Невозможно разобрать RSS XML с PHP Сделать ссылки интерактивными с регулярным выражением getimagesize вызывает ошибку php в magento Laravel redirect () -> route () не работает корректно (просмотр в старом состоянии никогда не обновляется) Как автоматически изменить размер ячейки в fpdf, используя php цикл wordpress, применяя что-то новое каждый третий пост Мой сайт заражен запутанным вредоносным программным обеспечением PHP – что он делает +, как я могу избавиться от него? PHP и обратные косые черты в строках

Чтение JSON из удаленного URL в PHP

У меня есть этот файл JSON:

http://www.jeewanaryal.com/angryQuiz/eighties/json/eighties.json

и я пытаюсь расшифровать его на PHP следующим образом:

$json = file_get_contents('http://www.jeewanaryal.com/angryQuiz/eighties/json/eighties.json'); $data = json_decode($json); var_dump($data); 

Но выход, который я получаю, является NULL. Я что-то пропустил?

Используя пример из PHP.NET json_last_error (), я обнаружил, что ваш синтаксис json неверен :

 switch (json_last_error()) { case JSON_ERROR_NONE: echo ' - No errors'; break; case JSON_ERROR_DEPTH: echo ' - Maximum stack depth exceeded'; break; case JSON_ERROR_STATE_MISMATCH: echo ' - Underflow or the modes mismatch'; break; case JSON_ERROR_CTRL_CHAR: echo ' - Unexpected control character found'; break; case JSON_ERROR_SYNTAX: echo ' - Syntax error, malformed JSON'; break; case JSON_ERROR_UTF8: echo ' - Malformed UTF-8 characters, possibly incorrectly encoded'; break; default: echo ' - Unknown error'; break; } 

Вывод:

  - Syntax error, malformed JSON 

Тем не менее, я проверил ваш код json на следующем веб-сайте, но он говорит:

Документация

json_decode может возвращать NULL как указано в документации .

Возвращает значение, закодированное в json в соответствующем PHP-типе. Значения true, false и null (без учета регистра) возвращаются как TRUE, FALSE и NULL соответственно. NULL возвращается, если json не может быть декодирован или если кодированные данные глубже, чем предел рекурсии.

Твоя проблема

json_decode не работает здесь из-за \n внутри id 6

{«id»: 6, «url»: « http://img.ruphp.com/php/betterOffDead.jpg », «question»: «В фильме« Better Off Dead », что было \ n имя младшего брата Лейна? »,« ответить »: [{" a ": {" text ":" Bradger "," status ": 1}}, {" b ": {" text ":" Peter "," status ": 0}}, {" c ": {" text ":" Frank "," status ": 0}}, {" d ": {" text ":" Michael "," status ": 0}} ]}

Решение

Я думаю, ваш лучший json_decode здесь, чтобы избежать их до json_decode

$safe_json = str_replace("\n", "\\n", $json);

Установите второй параметр равным true. Это даст вам ассоциативный массив. Если результат все равно null, мне было бы интересно, вернет ли файл_get_contents что-то.

Это всего лишь предположение, но поскольку вы не показываете, что содержит $json , я предполагаю, что file_get_contents вернули false , что приведет к результату, который вы получите.

Вы должны проверить свой файл php.ini , каково значение allow_url_fopen ? Если это 0 это означает, что вы не можете прочитать файл с http адреса, чтобы это могло быть проблемой.

Просто измените значение allow_url_fopen на 1 если это проблема.