Titre: découper un url
Posté par: nicolaslep le le 14-03-2009 a 10:53:17
Bonjour, je recher une fonction qui me permetrai de decouper une url du type http://www.monsite.com/galerie/primtemps/index.html Pour en sortir le repertoire "printemps" tout ce que j'ai trouvé me permet juste de sortir index.html Merci de votre aide |
Titre: Re:découper un url
Posté par: Krash le le 14-03-2009 a 11:24:19
tu souhaites récupérer tous les répertoires ou juste le dernier ?
tu peux faire comme cela
$url = "http://www.monsite.com/galerie/primtemps/index.html"; $var = explode('/', str_replace('http://', '', $url)); for($i=1; $i<count($var)-1; $i++) { echo $var[$i] . "<br />"; }
|
|
Tu obtiendras ceci :
donc ce qui ce passe: str_replace va enlever le http:// explode va diviser ton url a chaque fois qu'il rencontrera un / et mettra tous les morceaux dans un tableau
Dans la boucle for, on part avec $i=1 pour prendre le premier répertoire, si tu mets à 0 tu auras le nom de domaine sans le http:// count() va compter le nombre d'occurences dans ton tableau. count() retournera donc 4, comme la première occurence est 0, la dernière sera donc 3. On aurai très bien pu mettre for($i=1; $i<2; $i++) Mais peut être que tu savais déjà tout ca. Puis à la fin on affiche le tout.
Sinon tu peux utiliser la fonction dirname()
Tu obtiendras ceci: http://www.monsite.com/galerie/primtemps
Ou alors pathinfo()$path_parts = pathinfo($url); echo $path_parts['dirname'] . "<br>"; echo $path_parts['basename'] . "<br>"; echo $path_parts['extension'] . "<br>"; echo $path_parts['filename'] . "<br>";
|
|
Ce qui donnera :http://www.monsite.com/galerie/primtemps index.html html index
|
|
Voila en espérant avoir aidé |
Titre: Re:découper un url
Posté par: nicolaslep le le 14-03-2009 a 13:06:52
Merci bien pour ces expliquations ça fonctionne bien seulement je rencontre un autre probleme!
En fait je voulai recuperer le repertoire pour changer la couleur du lien du menu qui corespond a la page active mais mon menu est inseré sur le site grace a un include si je met ce code dans la page menu.php il me renvoie l'url du menu et si je le met dans l'index de la page il me renvoi le bon resultat mais je n'arrive pas a recuperer la variable dans la page menu.php |
Titre: Re:découper un url
Posté par: Krash le le 14-03-2009 a 13:11:06
Serait il possible de voir ton code ? Ou au moins en parti |
Titre: Re:découper un url
Posté par: nicolaslep le le 14-03-2009 a 13:19:01
voici une des page index.php don je veux recuperer le repertoire
<html> <head> <?php include('http://start10g.ovh.net/~catherinkl/franck/head.php'); ?> </head> <body> <?php
$url = $_SERVER['PHP_SELF'];
$var = explode('/', str_replace('http://', '', $url)); for($i=3; $i<count($var)-1; $i++) { } ?> <center>
<?php include('http://start10g.ovh.net/~catherinkl/franck/menu.php'); ?>
<object type="application/x-shockwave-flash" height="450" width="950" data="theSnakeMenuV3.swf"> <param name="movie" value="theSnakeMenuV3.swf"></param><param name="LOOP" value="true" /><param name="wmode" value="transparent" /> </object><?php include('http://start10g.ovh.net/~catherinkl/franck/bas.php'); ?> </center> </body> </html>
|
|
et voici la page menu.php
<?php
echo $var[$i]; ?> <br><br> <h1><img src=http://start10g.ovh.net/~catherinkl/franck/franck_prignet.png></h1> <img src=http://start10g.ovh.net/~catherinkl/franck/barre_haut.png> <span class=menu> <a href="http://start10g.ovh.net/~catherinkl/franck/bio" onMouseOver="ChangeMessage('ma biographie ma biographie ma biographie','ejs_texte')" onMouseOut="ChangeMessage('','ejs_texte')">bio</a> | <a href="http://start10g.ovh.net/~catherinkl/franck/editorial" onMouseOver="ChangeMessage('press press press press press','ejs_texte')" onMouseOut="ChangeMessage('','ejs_texte')">editorial</a> | <a href="http://start10g.ovh.net/~catherinkl/franck/projects" onMouseOver="ChangeMessage('people people people people people','ejs_texte')" onMouseOut="ChangeMessage('','ejs_texte')">projects</a> | <a href="http://start10g.ovh.net/~catherinkl/franck/twilight" onMouseOver="ChangeMessage('girly girly girly girly girly girly','ejs_texte')" onMouseOut="ChangeMessage('','ejs_texte')">twilight</a> | <a href="http://start10g.ovh.net/~catherinkl/franck/feelings" onMouseOver="ChangeMessage('22 nights 22 nights 22 nights 22 nights ','ejs_texte')" onMouseOut="ChangeMessage('','ejs_texte')">feelings</a> | <a href="http://start10g.ovh.net/~catherinkl/franck/urban" onMouseOver="ChangeMessage('lightpainting lightpainting lightpainting lightpainting lightpainting lightpainting','ejs_texte')" onMouseOut="ChangeMessage('','ejs_texte')">urban</a> | <a href="http://start10g.ovh.net/~catherinkl/franck/europa" onMouseOver="ChangeMessage('moonlight','ejs_texte')" onMouseOut="ChangeMessage('','ejs_texte')">europa</a> | <a href="http://start10g.ovh.net/~catherinkl/franck/mexico" onMouseOver="ChangeMessage('far away','ejs_texte')" onMouseOut="ChangeMessage('','ejs_texte')">mexico</a> | <a href="http://start10g.ovh.net/~catherinkl/franck/journey" onMouseOver="ChangeMessage('mexico','ejs_texte')" onMouseOut="ChangeMessage('','ejs_texte')">journey</a> | <a href="http://start10g.ovh.net/~catherinkl/franck/24_nights" onMouseOver="ChangeMessage('europa','ejs_texte')" onMouseOut="ChangeMessage('','ejs_texte')">24 nights</a> | <a href="http://start10g.ovh.net/~catherinkl/franck/people" onMouseOver="ChangeMessage('france','ejs_texte')" onMouseOut="ChangeMessage('','ejs_texte')">people</a> | <a href="http://start10g.ovh.net/~catherinkl/franck/attitudes" onMouseOver="ChangeMessage('NY city','ejs_texte')" onMouseOut="ChangeMessage('','ejs_texte')">attitudes</a> | <a href="http://start10g.ovh.net/~catherinkl/franck/specials" onMouseOver="ChangeMessage('special','ejs_texte')" onMouseOut="ChangeMessage('','ejs_texte')">Specials</a><br> <a href="http://start10g.ovh.net/~catherinkl/franck/links.php" onMouseOver="ChangeMessage('mes liens préférés','ejs_texte')" onMouseOut="ChangeMessage('','ejs_texte')">Links</a></span>
|
|
|
Titre: Re:découper un url
Posté par: Krash le le 14-03-2009 a 13:37:34
En fait chacune de tes pages sont un fichier index.php dans un dossier différent qui font appel au menu.php c'est ca ?
Dans ce cas pourquoi ne pas tout simplement définir une variable ou une constante dans chacun de tes index.php et selon ce que la variable ou constante contient, changer la couleur du menu ?
Sinon tu souhaites faire quoi récupérer le nom du dernier dossier ? Dans ce cas pas besoin de boucle for surtout que dans le code du menu, $i n'est pas définie.
dans le fichier index.php remplaces
$var = explode('/', str_replace('http://', '', $url)); for($i=3; $i<count($var)-1; $i++) {
}
|
|
par
$var = explode('/', str_replace('http://', '', $url));
|
|
et dans ton fichier menu.php
par
<?php echo $var[count($var)-2]; ?>
|
|
En tout cas niveau photographie c'est super, très belles photos ! |
Titre: Re:découper un url
Posté par: nicolaslep le le 14-03-2009 a 13:56:59
Oui c'est vrai mais le probleme reste identique si je met le code dans l'index.php ca fonctionne:<?php $var = explode('/', str_replace('http://', '', $_SERVER["HTTP_REFERER"])); echo $var[count($var)-2]; ?>
|
|
Mais si je ne met que ce code dans l'index:<?php $var = explode('/', str_replace('http://', '', $_SERVER["HTTP_REFERER"]));
?>
|
|
et celui la dans menu.php ca ne fonctionne plus<?php echo $var[count($var)-2]; ?>
|
|
???
|
Titre: Re:découper un url
Posté par: Krash le le 14-03-2009 a 14:05:09
et en remplaçant
<?php include('http://start10g.ovh.net/~catherinkl/franck/menu.php'); ?>
|
|
par
<?php include('menu.php'); ?>
|
|
ensuite selon ou se trouve ton fichier index.php il faudra mettre ../menu.php etc
ou alors mettre le chemin qui commence par /home/.....
tu peux le connaitre en faisant ceci echo dirname(__FILE__); que tu mets dans ton fichier menu.php |
Titre: Re:découper un url
Posté par: nicolaslep le le 14-03-2009 a 14:11:33
rohh ca merde encore ca me met le repertoire de la page précédente... laisses tomber je vais faire ça en passant un paramètre dans l'url des liens du menu MERCI beaucoup quand meme de m'avoir aider |
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|