Chemin absolu d'un lien dans une page

Contenu du snippet

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 :-)

A voir également

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.