Heim  >  Artikel  >  Backend-Entwicklung  >  Wie rufe ich die tatsächliche URL nach der Umleitung mit file_get_contents() ab?

Wie rufe ich die tatsächliche URL nach der Umleitung mit file_get_contents() ab?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-31 10:43:02834Durchsuche

How to Retrieve the Actual URL after Redirection with file_get_contents()?

Abrufen der tatsächlichen URL nach dem Dateiabruf mit file_get_contents

Bei Verwendung von file_get_contents() zum Abrufen von Website-Inhalten ist es möglich, dass die bereitgestellte URL umleitet an einen anderen Ort. Obwohl diese Funktion praktisch sein kann, kann sie auch dazu führen, dass die tatsächliche URL ermittelt werden muss, die nach der Umleitung erreicht wird.

Eine Methode, dies zu erreichen, besteht darin, file_get_contents() so zu konfigurieren, dass Weiterleitungen ignoriert werden. So geht's:

<code class="php">$context = stream_context_create(
    array(
        'http' => array(
            'follow_location' => false
        )
    )
);

$html = file_get_contents('http://www.example.com/', false, $context);</code>

Indem Sie „follow_location“ im Stream-Kontext auf „false“ setzen, ruft file_get_contents() den Inhalt ab, ohne automatisch Weiterleitungen zu folgen.

Nach der Anfrage werden die Header zurückgegeben Während der HTTP-Antwort kann untersucht werden, um die endgültige URL zu erhalten:

<code class="php">var_dump($http_response_header);</code>

Dadurch wird ein Array mit den HTTP-Headern angezeigt, einschließlich des „Location“-Headers, der die tatsächliche URL angibt, die nach etwaigen Weiterleitungen erreicht wurde.

Dieser Ansatz ist inspiriert von der Lösung auf Stack Overflow im Thread „Wie ignoriere ich einen verschobenen Header mit file_get_contents in PHP?“

Das obige ist der detaillierte Inhalt vonWie rufe ich die tatsächliche URL nach der Umleitung mit file_get_contents() ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn