La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  PHP / MySQL
(Modérateurs: Shain, Jey, erwinol, Lilian, lauryv, ToToMaStEr)
  découper un url
« Précédent Suivant »
Pages: [1] Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: découper un url  (Lu 822 fois)
découper un url
« sur: le 14-03-2009 a 10:53:17 »
nicolaslep
Membre récent
*

Hors-Ligne

Messages: 26



Je suis un lama!

Voir le Profil    E-Mail
Répondre avec citation

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

Rapporter au modérateur  

Re:découper un url
« Répondre #1 sur: le 14-03-2009 a 11:24:19 »
Krash
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 181





Voir le Profil    E-Mail
Répondre avec citation

tu souhaites récupérer tous les répertoires ou juste le dernier ?

tu peux faire comme cela

Citation:
$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 :
Citation:
galerie
primtemps

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<=count($var)-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()
Citation:
echo dirname($url);

Tu obtiendras ceci:
http://www.monsite.com/galerie/primtemps


Ou alors pathinfo()
Citation:
$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 :
Citation:
http://www.monsite.com/galerie/primtemps
index.html
html
index

Voila en espérant avoir aidé

« Dernière Édition: le 14-03-2009 a 11:35:21 par Krash » Rapporter au modérateur  
Re:découper un url
« Répondre #2 sur: le 14-03-2009 a 13:06:52 »
nicolaslep
Membre récent
*

Hors-Ligne

Messages: 26



Je suis un lama!

Voir le Profil    E-Mail
Répondre avec citation

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

Rapporter au modérateur  
Re:découper un url
« Répondre #3 sur: le 14-03-2009 a 13:11:06 »
Krash
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 181





Voir le Profil    E-Mail
Répondre avec citation

Serait il possible de voir ton code ?
Ou au moins en parti

Rapporter au modérateur  
Re:découper un url
« Répondre #4 sur: le 14-03-2009 a 13:19:01 »
nicolaslep
Membre récent
*

Hors-Ligne

Messages: 26



Je suis un lama!

Voir le Profil    E-Mail
Répondre avec citation

voici une des page index.php don je veux recuperer le repertoire



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




Citation:
<?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>





Rapporter au modérateur  
Re:découper un url
« Répondre #5 sur: le 14-03-2009 a 13:37:34 »
Krash
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 181





Voir le Profil    E-Mail
Répondre avec citation

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

Citation:
$var = explode('/', str_replace('http://', '', $url));
for($i=3; $i<count($var)-1; $i++) {

}

par

Citation:
$var = explode('/', str_replace('http://', '', $url));

et dans ton fichier menu.php
Citation:
<?php
echo $var[$i];
?>

par

Citation:
<?php
echo $var[count($var)-2];
?>


En tout cas niveau photographie c'est super, très belles photos !

« Dernière Édition: le 14-03-2009 a 13:41:36 par Krash » Rapporter au modérateur  
Re:découper un url
« Répondre #6 sur: le 14-03-2009 a 13:56:59 »
nicolaslep
Membre récent
*

Hors-Ligne

Messages: 26



Je suis un lama!

Voir le Profil    E-Mail
Répondre avec citation

Oui c'est vrai mais le probleme reste identique si je met le code dans l'index.php ca fonctionne:
Citation:
<?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:
Citation:
<?php
$var = explode('/', str_replace('http://', '', $_SERVER["HTTP_REFERER"]));

?>


et  celui la dans menu.php ca ne fonctionne plus
Citation:
<?php
echo $var[count($var)-2];
?>


Rapporter au modérateur  
Re:découper un url
« Répondre #7 sur: le 14-03-2009 a 14:05:09 »
Krash
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 181





Voir le Profil    E-Mail
Répondre avec citation

et en remplaçant

Citation:
<?php
include('http://start10g.ovh.net/~catherinkl/franck/menu.php');
?>

par

Citation:
<?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

Rapporter au modérateur  
Re:découper un url
« Répondre #8 sur: le 14-03-2009 a 14:11:33 »
nicolaslep
Membre récent
*

Hors-Ligne

Messages: 26



Je suis un lama!

Voir le Profil    E-Mail
Répondre avec citation

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

Rapporter au modérateur  
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2026 - Tous droits réservés

creation site internet strasbourg