Décomposer une URL

RobertP
Invité n'ayant pas de compte PHPfrance

11 mars 2005, 15:46

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

mlamla
Invité n'ayant pas de compte PHPfrance

11 mars 2005, 16:08

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>';

Mammouth du PHP | 1885 Messages

11 mars 2005, 19:46

<?php
$parse = parse_url('http://www.monsite.com/rep1/rep2/nom-a-recuperer#2');
$filename = basename($parse['path']);

echo $filename;
//Affichera : nom-a-recuperer
?>
;)
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

RobertP
Invité n'ayant pas de compte PHPfrance

11 mars 2005, 20:08

Marche pas j'ai la même URL !

Mammouth du PHP | 1885 Messages

11 mars 2005, 20:31

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.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

RobertP
Invité n'ayant pas de compte PHPfrance

11 mars 2005, 20:37

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

Mammouth du PHP | 859 Messages

11 mars 2005, 20:38

Chez moi elles fontionnent toutes avec la méthode de xenon_54.