Bonjour tout le monde
Alors voilà, n'étant pas très douer en expression régulière, je viens vers vous car j'ai un petit souci.
Je possède une vieu script de moteur de template, malheureusement il utilise encore les expression POSIX avec ereg, et je n'arrive pas à trouver l'alternative avec preg_match et les PCRE
exemple, un fichier tpl contenant
avant j'utilisais donc "ereg"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <!-- BLOC --> <div>{BLOC.VAR}</div> <!-- /BLOC -->
évidament avec ereg aucun souci, mais comme ereg est devenu déprécié et que j'en ai un peu assez de voir ce message d'erreur me le rappelant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 // $nom est le nom du bloc $regex = "<!-- " . $nom . " -->(.*?)<!-- " . $nom . " -->"; ereg($regex,$source,$matches);
j'ai donc tenté de changer mon code par ceci ( toujour sur la même source )
avant ( avec ereg ) si je fesait un echo de $matches[0] j'obtenait donc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 // le caractère ! étant spécial je l'echappe $regex = "#<\!-- " . $nom . " -->(.*?)<\!-- /" . $nom . " -->#"; preg_macth($regex,$source,$matches);
"<div>{BLOC.VAR}</div>"
maintenant plus rien
par contre j'ai bel et bien un message d'erreur
la ligne 79 étant celle ou je veux traiter $matches[0]Notice: Undefined offset: 0 in http://*****\classes\template.cls.php on line 79
j'ai tenter un print_r sur $matches et le résultat est un tableau vide
je suis vraiment pas douer pour les expression régulière, j'ai bien commencer à lire quelques truc la dessus, mais j'ai déficile à assimiler la chose.
quelqu'un pourrait-il m'aider et est-ce qu'il existe une méthode pour déboguer une expression régulière ?
d'avance merci de votre aide
Partager