Getting the Real URL After Redirection with file_get_contents
When using file_get_contents() to fetch website content, you may encounter situations where the provided URL redirects to a different location. In such cases, it becomes necessary to obtain the actual URL after the redirection.
Handling Redirects with file_get_contents()
Using file_get_contents() by default follows redirects. To prevent automatic redirection, you can utilize a custom stream context. By setting the 'follow_location' option to false, you can disable automatic redirection.
<code class="php">$context = stream_context_create( array( 'http' => array( 'follow_location' => false ) ) ); $html = file_get_contents('http://www.example.com/', false, $context);</code>
Accessing the Actual URL
After disabling automatic redirection, you can retrieve the actual URL from the 'http_response_header' array. This header contains various HTTP response details, including the location of the redirected page.
<code class="php">var_dump($http_response_header);</code>
By printing the 'http_response_header', you can locate the 'Location' header within the array. This header value will indicate the actual URL after the redirection.
Inspiration
This solution was inspired by a Stack Overflow discussion: [How do I ignore a moved-header with file_get_contents in PHP?](https://stackoverflow.com/questions/7253653/how-do-i-ignore-a-moved-header-with-file-get-contents-in-php)
The above is the detailed content of How to Get the Real URL After Redirection with file_get_contents() in PHP?. For more information, please follow other related articles on the PHP Chinese website!