Home  >  Article  >  Backend Development  >  How to Get the Real URL After Redirection with file_get_contents() in PHP?

How to Get the Real URL After Redirection with file_get_contents() in PHP?

Linda Hamilton
Linda HamiltonOriginal
2024-10-28 23:32:30853browse

How to Get the Real URL After Redirection with file_get_contents() in PHP?

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn