Я пытаюсь получить информацию о пользователе с file_get_contents()
с использованием дергаться API. Когда я проверяю ссылку в моем браузере как с существующей, так и с несуществующей, она отлично работает в обоих случаях (возвращает пользовательский объект, если пользователь существует, и объект ошибки, если пользователь не существует).
Тем не менее, когда я хочу сделать то же самое в PHP
с file_get_contents()
, он работает нормально, когда пользователь существует, но когда это не так, PHP бросает Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
,
Мой код выглядит так:
$username = $_GET['username'];
$result = file_get_contents('https://api.twitch.tv/kraken/users/'.$username);
var_dump($result);
Я думаю, что вы пытаетесь проанализировать JSON независимо от того, существует ли действительный код HTTP (например, 200) или неверный (например, 404). Проблема PHP в том, что он не работает, если есть неправильный код ответа HTTP. Однако вы можете заставить PHP принять это, используя флаг в вызове метода. Увидеть https://stackoverflow.com/a/4132660/3233827 для этого.
Других решений пока нет …