Revenir en arrière : fonction php

Revenir en arrière : fonction php - PHP - Programmation

Marsh Posté le 25-06-2004 à 15:44:20    

Hello.
Je suis en train de faire un petit album photo en php. J'ai qu'une seule page photo.php et je navigue dans les rep avec des variables GET genre : photo.php?rep=plage/marseille . Le truc, c'est que j'aimerai faire une fonction retour qui m'enleve le dernier niveau, soit ici, /marseille. Avec   $PHP_SELF je vois donc où je suis mais je sais pas comment effacer le dernier niveau. Expression régulières ? Je sais pas comment utiliser..pouvez-vous m'aider ? Merci :hello:  :bounce:

Reply

Marsh Posté le 25-06-2004 à 15:44:20   

Reply

Marsh Posté le 25-06-2004 à 16:01:04    

Je pense qu'avec un strrchr suivi d'un substr ça doit être le plus facile. Un truc du genre (pas testé attention :D) :
$maChaine = substr( $maChaine, 0, strrchr( $maChaine, '/' ) )
 
Va voir la http://www.php.net/manual/fr/ref.strings.php pour plus de détails.
 

Reply

Marsh Posté le 25-06-2004 à 16:40:14    

le probleme de strchr c'est qu'elle retourne la premiere occurence de ton "/" mieux vaut utiliser strrpos ...

Reply

Marsh Posté le 25-06-2004 à 16:49:01    

_pegaze_ a écrit :

le probleme de strchr c'est qu'elle retourne la premiere occurence de ton "/" mieux vaut utiliser strrpos ...


 
C'est pas strchr mais strrchr... Mais tu as raison quand même car strrchr retourne la fin de la chaine et pas la position de la dernière occurence  :jap:

Reply

Marsh Posté le 25-06-2004 à 16:58:41    

explode("/", $chaine); fait l'affaire et donne un tableau complet de l'orborescence. Cela permet aussi de remonter facilement de plusieurs niveaux


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 25-06-2004 à 17:13:20    

pascal_ a écrit :

C'est pas strchr mais strrchr... Mais tu as raison quand même car strrchr retourne la fin de la chaine et pas la position de la dernière occurence  :jap:


 
j'ai vraiment du mal a lire aujourd'hui :D

Reply

Marsh Posté le 25-06-2004 à 17:30:02    

T509 a écrit :

explode("/", $chaine); fait l'affaire et donne un tableau complet de l'orborescence. Cela permet aussi de remonter facilement de plusieurs niveaux


 
le problème c'est que j'ai des ? et & pour les variables get..., en gros, je suis casiement toujours sur le même fichier php mais avec les variables qui changent.

Reply

Marsh Posté le 25-06-2004 à 20:00:45    

si tu fais un explode("/", $_GET['tavariable']) tu n'auras ni ? ou & à moins que tu les aies codés à coup d'urlencode()


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 25-06-2004 à 23:27:42    

T509 a écrit :

si tu fais un explode("/", $_GET['tavariable']) tu n'auras ni ? ou & à moins que tu les aies codés à coup d'urlencode()


bof bof car le première dir (plage dans mon exemple en haut) n'a pas de / ! :pt1cable:

Reply

Marsh Posté le 26-06-2004 à 00:09:59    

ya pas un truc genre basename et dirname en php?


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 26-06-2004 à 00:09:59   

Reply

Marsh Posté le 26-06-2004 à 00:34:10    

http://www.nexen.net/docs/php/anno [...] se-url.php


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 28-06-2004 à 01:40:03    

MoxFulder a écrit :

bof bof car le première dir (plage dans mon exemple en haut) n'a pas de / ! :pt1cable:


 :non:  
Si tu essaies ce code :
 

Code :
  1. <?php
  2. $page = "chemin/vers/ton/dossier";
  3. $tableau = explode("/", $page);
  4. print_r($tableau);
  5. ?>


 
Tu verras que le résultat est :

Code :
  1. Array
  2. (
  3.     [0] => chemin
  4.     [1] => vers
  5.     [2] => ton
  6.     [3] => dossier
  7. )


 
 :o


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 28-06-2004 à 03:31:44    

T509 a écrit :

:non:  
Si tu essaies ce code :
 

Code :
  1. <?php
  2. $page = "chemin/vers/ton/dossier";
  3. $tableau = explode("/", $page);
  4. print_r($tableau);
  5. ?>


 
Tu verras que le résultat est :

Code :
  1. Array
  2. (
  3.     [0] => chemin
  4.     [1] => vers
  5.     [2] => ton
  6.     [3] => dossier
  7. )


 
 :o

:jap:
J'allais répondre la même chose, et l'avantage de cette solution et de pouvoir afficher (simplement) les chemin sous la forme :
 
chemin/vers/ton/dossier
 
Chaque élément est un lien...


Message édité par harrysauce le 28-06-2004 à 03:32:30
Reply

Marsh Posté le 28-06-2004 à 17:01:24    

et si j'ai chemin/vers.php?dossier=premier/deuxieme/troisieme
 
ça joue plus !

Reply

Marsh Posté le 28-06-2004 à 17:14:53    

Eh bien si, la décomposition de ta variable "dossier" en tableau te donnera
 
premier
deuxieme
troisieme
 
Essaie le code que je t'ai donné !


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 28-06-2004 à 17:17:13    

MoxFulder a écrit :

et si j'ai chemin/vers.php?dossier=premier/deuxieme/troisieme
 
ça joue plus !


 :heink:  
Lis la doc PHP, c'est un minimum quand même!
 
Essaie ca :

Code :
  1. $dossier = $_GET["dossier"];
  2. $tabDossier = explode("/", $dossier);
  3. print_r($tabDossier);


 
Pour le reste, c'est toi qui voit....
 
 
Ah oui, après ca dépend de la façon dont sont codées les '/', mais là aussi, c'est toi qui voit, on est pas là pour faire le boulot à ta place [:spamafote]


Message édité par harrysauce le 28-06-2004 à 17:17:57
Reply

Marsh Posté le 28-06-2004 à 17:54:59    


 
lis ca putainnnn :o :o :o


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 28-06-2004 à 17:58:33    

Il n'a pas l'air d'avoir envie de lire ou de tester ce qu'on lui donne. Dommage ... :o :o :o


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 28-06-2004 à 23:47:54    

scusez !!! Je débute et c'est vrai que j'ai tendance à faire que ce que je connais->soit, j'apprends rien de nouveau. C'est un de mes problèmes mais MERCI de me remettre en ordre les gars, je vous tiens au courant de mes lectures :) merci à chacun

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed