ホームページ >バックエンド開発 >PHPチュートリアル >「file_get_contents」と「stream_context_create」を使用して HTTP エラーを処理し、応答コードを取得する方法
file_get_contents および stream_context_create を使用した HTTP 応答コード
POST リクエストを行うには、file_get_contents を stream_context_create と組み合わせて利用できます。ただし、HTTP エラーが発生すると警告が表示される場合があります。この記事では、この問題に対処し、警告の抑制とストリームからの応答コードの取得の両方の解決策を提供します。
まず、次のシナリオを検討してください。
$options = ['http' => [ 'method' => 'POST', 'content' => $data, 'header' => "Content-Type: text/plain\r\n" . "Content-Length: " . strlen($data) . "\r\n", ]]; $context = stream_context_create($options); $response = file_get_contents($url, false, $context);
このコードは POST リクエストを処理します。ただし、HTTP エラーが発生した場合は、次の警告が表示されます。
file_get_contents(...): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request
さらに、false が返されます。この問題から 2 つの懸念が生じます:
警告の抑制
警告を抑制するには、次のことができます。 stream_context_create() 内のignore_errors オプションを利用します:
$context = stream_context_create(['http' => ['ignore_errors' => true]]);
この変更により、警告は表示されなくなります。
応答コードの取得
ストリームから応答コードを取得するには、http_response_header を検査します。変数:
$context = stream_context_create(['http' => ['ignore_errors' => true]]); $result = file_get_contents("http://example.com", false, $context); var_dump($http_response_header);
このコードは、応答コードを含む応答ヘッダーを含む配列を表示します。
以上が「file_get_contents」と「stream_context_create」を使用して HTTP エラーを処理し、応答コードを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。