問題: file_get_contents() を使用してコンテンツをスクレイピングしているときにリダイレクトが発生しましたが、本当の URL を明らかにしたいと考えています.
解決策:
通常、file_get_contents() はリダイレクトを処理しますが、明示的に制御が必要な場合は、次のアプローチを採用します。
<code class="php">// Disable automatic redirect following $context = stream_context_create([ 'http' => [ 'follow_location' => false ] ]); // Retrieve the content with no redirects $html = file_get_contents('http://www.example.com/', false, $context); // Access the HTTP response headers to determine the actual URL var_dump($http_response_header);</code>
By 「follow_location」を false に設定すると、file_get_contents() がリダイレクトを自動的にたどることがなくなります。応答ヘッダー ($http_response_header で利用可能) には、リダイレクト後の真の URL を示す「Location」ヘッダーが含まれます。
ヒント: このアプローチは、「方法」で提供されるソリューションからインスピレーションを得ています。 PHP で file_get_contents を使用した move-header を無視しますか?
以上がPHP で file_get_contents() を使用する場合、リダイレクト後の最終 URL を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。