Heim > Artikel > Backend-Entwicklung > Wie kann ich die endgültige URL nach Weiterleitungen erhalten, wenn ich file_get_contents() in PHP verwende?
Problem: Beim Scraping von Inhalten mit file_get_contents() stoßen Sie auf Weiterleitungen, möchten aber die wahre URL aufdecken .
Lösung:
Obwohl file_get_contents() im Allgemeinen Weiterleitungen verarbeitet, verwenden Sie den folgenden Ansatz, wenn Sie explizit Kontrolle benötigen:
<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>
Von Wenn Sie „follow_location“ auf „false“ setzen, verhindern Sie, dass file_get_contents() Weiterleitungen automatisch folgt. Die Antwortheader (verfügbar in $http_response_header) enthalten den „Location“-Header, der die wahre URL nach etwaigen Weiterleitungen angibt.
Tipp: Dieser Ansatz ist von der Lösung inspiriert, die in „How do“ bereitgestellt wird Ich ignoriere einen verschobenen Header mit file_get_contents in PHP?
Das obige ist der detaillierte Inhalt vonWie kann ich die endgültige URL nach Weiterleitungen erhalten, wenn ich file_get_contents() in PHP verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!