Expression reg : 01->Janvier 02->Fevrier - PHP - Programmation
Marsh Posté le 14-04-2005 à 12:01:02
J'ai bien une idee pour toi, mais j'pourrais tester:
$Mois = {"janvier",...};
$pattern ="/([a-zA-Z0-9]_[0-9]{2}_)([0-9]{2})(_[0-9]+)\./"
$replacement = "\$".$Mois['\$2']."\$3";
echo preg_replace($pattern, $replacement, $taChaine);
Bon j'y crois pas trop au niveau du: $Mois['\$2'], mais dans l'idee c'est ca
Marsh Posté le 14-04-2005 à 13:02:11
JohnMeurt a écrit : J'ai bien une idee pour toi, mais j'pourrais tester: |
Effectivement :
Code :
|
me donne :
_15_02_03 |
!!
Donc oui, doit y avoir un truc qui va pas
GaSPaRD77-> tjs pas compris ce que je voulais ?? ?? Sinon, j'explique, hein !!
Marsh Posté le 14-04-2005 à 13:56:21
oui ya pas mal d'erreurs
essaye ça :
Code :
|
on pourrait faire plus propre, mais ça fonctionne
Marsh Posté le 14-04-2005 à 14:01:12
Code :
|
Carrement pas sûr que ça fonctionne ... C'est du vite fait de tête!
Marsh Posté le 14-04-2005 à 14:53:39
GaSPaRD77 a écrit :
|
Ouep, ca fonctionne pas tellement : ca fait des warnings, et ça n'affiche rien !
C con J'avais à peu pres compris ce que ca voulait dire
Citation : oui ya pas mal d'erreurs |
Là je comprends quasi rien Mais ca fonctionne
Donc pour essayer de m'instruire :
ce que je comprends pas c'est -notamment- les trucs en gras (faut dire, le peu qui reste, c pas dur ):
$pattern ='/^(.*)_([0-9]{2})_([0-9]{2})_([0-9]+)\./e';
Merci !
Marsh Posté le 14-04-2005 à 15:25:32
Le caractère "/" permet d'encadrer l'expression régulière.
Le caractère "^", en dehors de crochets signifie début de ligne ou début de chaîne.
() capture un morceau de la chaine (retrouvable avec //1 ou $1).
le . est un caractère jocker (= correspond à nimportequel caractère).
le * signifie "0 ou plus"
donc (.*) : capturer 0 ou plusieurs caractères inconnus.
\ : permet d'échaper un caractère, ici \. signifie bien un point, et non n'importequel caractère.
le "e" :
E : Avec cette option, preg_replace effectue la substitution normale des références arrières dans la chaîne de remplacement, puis l'évalue comme un code PHP, et utilise le résultat pour remplacer la chaîne de recherche.
Seule preg_replace utilise cette option. Elle est ignorée par les autres.
(http://www.expreg.com/options.php)
Marsh Posté le 14-04-2005 à 11:50:30
Bonjour tt le monde
Mon problème est le suivant : je voudrais 01-->Janvier... etc...
Càd que blabla_13_05_2005.extension --> blabla_13_Mai_2005.extension
J'ai pensé à un str_replace, mais ca ne va pas car si le jr est <12, ca me fait janvier_mars_2005 pour blabla_01_03_2005.ext !!!
Je penche donc pr les exp reg, mais j'ai regardé la doc php, et c'est hyper lourd comme truc !!
Et pr des personnes qui connaissent, ca doit pas prendre plus d'1/4 de sec (je me trompe )
Donc, si vous pouviez m'aider, ce serait chouette (c'est le tps qui me manque pr me mettre au ereg, sinon, vous pensez bien, ca aurait été avec un réél plaisir )
---------------
ZZZZzzzzz