Für PHP-Entwickler kann das Erhalten der Sprungadresse ein sehr häufiges Problem sein, beispielsweise die Notwendigkeit, die tatsächliche Sprungadresse im Crawler-Programm zu erhalten. In diesem Artikel erfahren Sie, wie Sie mit PHP die umgeleitete Adresse erhalten.
HTTP-Umleitung
Im HTTP-Protokoll bedeutet Umleitung, dass, wenn der Client (z. B. ein Website-Browser) den Server (z. B. einen Website-Server) anfordert, der Server eine Umleitungsantwort zurückgibt und den Client anweist, die Anfrage erneut zu senden einen anderen Server. Dieser Vorgang wird als HTTP-Umleitung bezeichnet.
Es gibt viele Möglichkeiten, eine HTTP-Umleitung zu implementieren. Die häufigste davon ist die Verwendung der HTTP-Statuscodes 302 (Gefunden) und 303 (Siehe Andere). Wenn der Server diese Statuscodes zurückgibt, führt der Client automatisch eine Umleitung durch und springt zur neuen URL-Adresse.
Erhalten Sie die umgeleitete Adresse
In PHP können wir Curl- und Header-Funktionen verwenden, um die umgeleitete Adresse abzurufen. Das Folgende ist ein Beispielcode für die Verwendung von Curl zum Abrufen der umgeleiteten Adresse:
function getRedirectUrl($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_AUTOREFERER, true); $redirectUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); curl_close($ch); return $redirectUrl; }
Diese Funktion akzeptiert eine URL als Parameter und gibt die neue Adresse nach der Umleitung dieser URL zurück. Bei dieser Funktion müssen wir auf die folgenden Punkte achten: Die Funktion
function getRedirectUrl($url){ $redirectUrl = null; $headers = get_headers($url, true); if (isset($headers['Location'])) { $redirectUrl = $headers['Location']; } else if(isset($headers['location'])) { $redirectUrl = $headers['location']; } return $redirectUrl; }
Zusammenfassung
In diesem Artikel haben wir vorgestellt, wie man mit PHP die Adresse nach der HTTP-Umleitung erhält. In Situationen, in denen wir die umgeleitete Adresse im Programm verfolgen müssen, können wir die Curl- oder Header-Funktion verwenden, um das Feld „Location“ im HTTP-Antwortheader abzurufen und die umgeleitete URL-Adresse zu erhalten.
Das obige ist der detaillierte Inhalt vonSo erhalten Sie die Adresse nach dem Sprung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!