Cherche script pour avoir l'URL finale suite à 1 redirection

WRInaute passionné
bonjour,

je cherche une classe ou une librairie qui, à partir d'une URL de redirection, me permet d'obtenir le lien "final", que ce soit une redirection permanente (301) ou temporaire (302), ou autre.

un peu à la manière des Tools de WRI ou Webmaster-Hub qui proposent via leurs interfaces respectives d'obtenir les entêtes HTTP, et ce, jusqu'à 8 redirections successives.

Je n'arrive pas à trouver ça.

Merci
 
Nouveau WRInaute
bonjour,
je me souviens avoir bien gallérer pour l'écrire :

Code:
$url = "http://www.linuvers.com/";
$headers = get_headers($url);
list($http, $code, $valide) = explode(" ", $headers['0'], 3);

echo $code;

Dans la variable $code tu as le numéro de redirection
Voila
 
Nouveau WRInaute
En fait la fonction get_header retourne ce tableau :
Code:
    [0] => HTTP/1.1 200 OK
    [Date] => Sat, 29 May 2004 12:28:14 GMT
    [Server] => Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT
    [ETag] => "3f80f-1b6-3e1cb03b"
    [Accept-Ranges] => bytes
    [Content-Length] => 438
    [Connection] => close
    [Content-Type] => text/html

cela ne donne pas l'url final mais permet quand même de faire la distinction en cas de redirection
 
Nouveau WRInaute
En cas de redirection on récupére la nouvelle url avec :

Code:
    list($location, $newhttp) = explode(" ", $headers['3'], 2);

voili, voila
 
WRInaute passionné
Regarde curl et plus particulièrement l'option :
Code:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true)
tu récupère l'url finale et le code HTTP :
Code:
$url_reelle = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
 
Discussions similaires
Haut