Bonsoir a tous,
j'ai une url du type /folder/file.ext (folder pouvant representer une suite de sous repertoir )
je souhaierais vérifier si cette URL verifie l'un des "motife" suivant :
- /folder
- /folder/
- /a_file.php
- /folder/.../folder
- /folder/.../folder/
- /folder/.../a_file.php
et récuperer le chemin et le nom-de-base du fichier ( sans l'extension ) là est mon probleme ...
J'ai essayé pas mal de chose, mais il doit y avoir encore des trucs qui m'échape.
La premier chose sur laquel je bloque est de vérifier si l'URL fini par / ou .php et du coup , récuperer le reste de l'url
PS : Je pensais que $reg[2] ( dans cette exemple) devait m'afficher .php . Mais j'ai l'impression que le (.*) qui precede le (/|\.php)? l'emporte a cause du ? car si je l'enleve ou que je met un + ca marche mais plus pour le cas ou url = /folder
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 /* // motife valide : //======================= /folder /folder/ /a_file.php /folder/.../folder /folder/.../folder/ /folder/.../a_file.php */ $str='/folder/file.php'; $regex='^(.*)(/|\.php)?$';// le ' ? ' finale pose des probleme :? if (ereg ($regex, $str, $regs)) { for($i=0;$i<sizeof($regs);$i++) echo $i.'->'.$regs[$i].'<br>'; } /* // OutPut : //======================== 0->/folder/file.php 1->/folder/file.php 2-> */ // $regs[0] correspond a la chaine traité
Partager