Page 1 sur 1

Décomposer une URL

Posté : 11 mars 2005, 15:46
par RobertP
Bonjour,

j'aimerai savoir comment on fait pour récupérer dans une variables un élément, je m'explique avec un exemple :

Code : Tout sélectionner

http://www.monsite.com/nom-a-recuperer http://www.monsite.com/rep1/nom-a-recuperer http://www.monsite.com/rep1/rep2/nom-a-recuperer http://www.monsite.com/rep1/rep2/nom-a-recuperer#2
Dans ces quatres URL, j'aimerai obtenir simplement 'nom-a-recuperer'.

Peut importe où se trouve le dernier élément, je veux donc pouvoir le récupérer dans une variable.

Merci d'avance

RP

Posté : 11 mars 2005, 16:08
par mlamla
essaye ça
 $explode=explode('/',$url);
		 $res=count($explode);
		 $j=$res-1;
		 $MyUrl=$explode[0].'/'.$explode[1].'/'.$explode[2].'/'.$explode[3];
		 for($i=4;$i < $j;$i++){
		 	$MyUrl=$MyUrl.'/'.$explode[$i];
		 	}
		 	$url=$MyUrl.'/';		 		 
		 	echo 'Mon URL modifiée : '.$url.'<br>';

Posté : 11 mars 2005, 19:46
par Xenon_54
<?php
$parse = parse_url('http://www.monsite.com/rep1/rep2/nom-a-recuperer#2');
$filename = basename($parse['path']);

echo $filename;
//Affichera : nom-a-recuperer
?>
;)

Posté : 11 mars 2005, 20:08
par RobertP
Marche pas j'ai la même URL !

Posté : 11 mars 2005, 20:31
par Xenon_54
Lequel des 2 exemples ne fonctionne pas?
Le mien ou celui de mlamla?

Car pour ce qui est du mien, je l'ai personnellement testé avant de le proposer sur le forum.

Pour preuve:
<?php
function filename($url) {
	$parse = parse_url($url);
	return basename($parse['path']);
}

echo filename('http://www.monsite.com/nom-a-recuperer') , '<br />';
echo filename('http://www.monsite.com/rep1/nom-a-recuperer') , '<br />';
echo filename('http://www.monsite.com/rep1/rep2/nom-a-recuperer') , '<br />';
echo filename('http://www.monsite.com/rep1/rep2/nom-a-recuperer#2');

?>
Voici ce que j'obtiens à l'écran pour chacun des exemples:

Code : Tout sélectionner

nom-a-recuperer nom-a-recuperer nom-a-recuperer nom-a-recuperer
Donc merci de bien spécifier ce qui ne fonctionne pas et quel est le résultat obtenu.

Posté : 11 mars 2005, 20:37
par RobertP
La première ne fonctionne pas

La deuxième fonctionne nikel, merci beaucoup Xenon_54 et excuse car j'avais pas rafraichie la fenetre pour mon dernier post :?

Merci

Posté : 11 mars 2005, 20:38
par flitox
Chez moi elles fontionnent toutes avec la méthode de xenon_54.