Подскажите в чем может быть дело, так возвращает null: PHP: if (filter_var($url, FILTER_VALIDATE_URL) !== false) { $file_headers = get_headers($url); if($file_headers[0] !== 'HTTP/1.1 404 Not Found') { $file = file_get_contents($url); $data = json_decode($file); var_dump($data); //NULL } } А вот если выведу через echo $file. Потом просто скопирую что на экране и вставлю в переменную, то все хорошо: PHP: $str; //то что с экрана $data = json_decode($str); print_r($data); Если вывести header то там это: PHP: array ( 0 => 'HTTP/1.1 200 OK', 1 => 'Content-Type: application/json; charset=utf-8', 2 => 'Server: Microsoft-IIS/10.0', 3 => 'X-Powered-By: ASP.NET', 4 => 'Date: Tue, 16 Jun 2020 11:09:52 GMT', 5 => 'Connection: close', 6 => 'Content-Length: 175412', ) что то не сталкивался с этим. Если вывести через проверки PHP: json_decode($file); switch (json_last_error()) { case JSON_ERROR_NONE: echo ' - Ошибок нет'; break; case JSON_ERROR_DEPTH: echo ' - Достигнута максимальная глубина стека'; break; case JSON_ERROR_STATE_MISMATCH: echo ' - Некорректные разряды или несоответствие режимов'; break; case JSON_ERROR_CTRL_CHAR: echo ' - Некорректный управляющий символ'; break; case JSON_ERROR_SYNTAX: echo ' - Синтаксическая ошибка, некорректный JSON'; break; case JSON_ERROR_UTF8: echo ' - Некорректные символы UTF-8, возможно неверно закодирован'; break; default: echo ' - Неизвестная ошибка'; break; } То будет Синтаксическая ошибка, некорректный JSON
Нашел решение, по факту случайное. Опытные люди подскажите что это может быть. Хотел удалить первый символ: PHP: $file = file_get_contents($url); $str = substr($file, 1); echo $str; А вылезло вот что: Код (Text): ��[{ А чтобы заработало написал так: PHP: $file = file_get_contents($url); $str = substr($file, 3); $data = json_decode( $str, true ); var_dump($data); То есть удалил первые три символа. Объясните что там были за невидимые три символа?
братан, php не врет, если пишут есть синтаксическая ошибка - так оно и есть... а все твои фокусы с echo и копиапстом просто ее лечат, убирая например какие-то непечатаемые знаки. Есть же море программ и сервисов для проверки json --- Добавлено --- UTF-8 witch BOM