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!