utile pour trouver le chemin absolu
http://... d'un lien dans une page html.
exemple, j'ai une page html
http://www.perdu.com/test.html et dedans y'a le lien <a href="bonjour/test2.html">XXX</a>. Mon petit script sert à trouver le chemin absolu de bonjour/test2.html (qui est
http://www.perdu.com/bonjour/test2.html).
Source / Exemple :
function chemin_absolu($Page_Courante,$Lien) {
// Recherche du dossier courant et analyse de l'adresse
$Dossier = ereg_replace("\?(.*)$","",$Page_Courante);
$Dossier = ereg_replace("/(.[^/]+)$","/",$Dossier);
$Bout = split("/",$Dossier);
$Total = substr_count($Dossier,"/")-1;
eregi("^http://(.[^/]*)/",$Dossier,$Sortie);
$Domaine = "http://$Sortie[1]/";
// Recherche de la location complète du lien à partir du lien sommaire
$Lien = ereg_replace("^\./","",$Lien);
$Lien = ereg_replace("^/",$Domaine,$Lien);
if(!eregi("^http://",$Lien)) {
if(eregi("^[a-z]{2,10}://",$Lien) || eregi("^(mailto|javascript)[ ]*:[ ]*",$Lien)) {
unset($Lien);
} else {
$i = 0;
$Reduction = $Dossier;
while(ereg("^../",$Lien)) {
$Lien = ereg_replace("^../","",$Lien);
if($Bout[$Total-$i] && $Total-$i > 2) {
$Reduction = substr_replace($Reduction,"",strpos($Reduction,"/".$Bout[$Total-$i]),strlen("/".$Bout[$Total-$i]));
} else {
unset($Reduction);
unset($Lien);
}
$i++;
}
$Lien = $Reduction.$Lien;
}
}
// Renvoi du chemin absolu du lien
return $Lien;
}
// pour appeler la fonction
// cette page est la page dans laquelle se trouve le lien à analyser
$page_originale = "http://www.test.com/xxx/yyy/test.php";
/*
ceci est le lien à analyser. il peut être du type :
../gfeg/gfdsg/x.php
ou du type unix /est/test/ghetr.php
ou http://XXX
$lien = "../bébé/bébé.php";
$chemin = chemin_absolu($page_originale,$lien);
$chemin prend donc la valeur :
http://www.test.com/xxx/bébé/bébé.php
c'est à cette page qu'on arrivera si on clique sur le lien "../bébé/bébé.php" dans la page
http://www.test.com/xxx/yyy/test.php.
voila, un petit script qui ne sert pas à grand chose, sauf si vous faîtes comme moi un moteur de recherche :-)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.