file_get_contents によるリダイレクト後の実際の URL の取得
file_get_contents() を使用して Web サイトのコンテンツを取得する場合、指定された URL が別の場所にリダイレクトされます。このような場合、リダイレクト後に実際の URL を取得する必要があります。
file_get_contents() によるリダイレクトの処理
デフォルトでは、リダイレクトの後に file_get_contents() を使用します。自動リダイレクトを防ぐには、カスタム ストリーム コンテキストを利用できます。 「follow_location」オプションを false に設定すると、自動リダイレクトを無効にできます。
<code class="php">$context = stream_context_create( array( 'http' => array( 'follow_location' => false ) ) ); $html = file_get_contents('http://www.example.com/', false, $context);</code>
実際の URL へのアクセス
自動リダイレクトを無効にすると、 「http_response_header」配列からの実際の URL。このヘッダーには、リダイレクトされたページの場所を含む、さまざまな HTTP 応答の詳細が含まれています。
<code class="php">var_dump($http_response_header);</code>
「http_response_header」を出力すると、配列内の「Location」ヘッダーを見つけることができます。このヘッダー値は、リダイレクト後の実際の URL を示します。
インスピレーション
このソリューションは、スタック オーバーフローのディスカッションからインスピレーションを受けました: [移動されたヘッダーを無視するにはどうすればよいですか?] PHP の file_get_contents を使用しますか?](https://stackoverflow.com/questions/7253653/how-do-i-ignore-a-moved-header-with-file-get-contents-in-php)
以上がPHP で file_get_contents() を使用してリダイレクト後に実際の URL を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。