[PHP] file_get_contents で 403 Forbidden

file_get_contents で 403 Forbidden が出る場合に User Agent を指定すると解決することがあるようです。

【エラー】

php -r "file_get_contents('https://connpass.com/api/v1/event/?keyword=devcussion&order=2');"
PHP Warning:  file_get_contents(https://connpass.com/api/v1/event/?keyword=devcussion&order=2): failed to open stream: HTTP request failed! HTTP/1.1 403 FORBIDDEN
 in Command line code on line 1

【解決】

$options = [
    'http' => [
        'method' => 'GET',
        'header' => 'User-Agent: iOS',
    ],
];
$context = stream_context_create($options);
$url = 'https://connpass.com/api/v1/event/?keyword=devcussion&order=2';
$json = file_get_contents($url, false, $context);

【参考】
PHP で file_get_contents で 403エラー


カテゴリー: PHP パーマリンク