Expressions régulières [PHP] - Programmation
Marsh Posté le 05-03-2002 à 10:18:44
non, ce n'est pas possible, les regexp php n'acceptent pas de fonction imbriquées.
Marsh Posté le 05-03-2002 à 10:27:17
ReplyMarsh Posté le 05-03-2002 à 10:53:53
ca doit etre possible, mais peut etre en faisant 2 fncts replace
Marsh Posté le 05-03-2002 à 11:24:53
oui j'ai trouvé mais j'ai dû faire un boucle avec un for en extractant chq caractère de la chaine pour voir s'il s'agissait du code de début ou de fin
mais bon, je pensais qu'avec les expressions régulières, ce genre de truc était possible... tantpis
Marsh Posté le 05-03-2002 à 11:29:36
pourtant j'arrive bien a remplacer des \ par des / donc rajouter \ devant " ca doit etre possible...
http://forum.hardware.fr/forum2.ph [...] p=1&trash=
Marsh Posté le 05-03-2002 à 11:34:13
Peut être une soluce : tu entres utilises deux tableaux, un pour les motifs à remplacer, l'autre pour leur correspondance.
$pattern = array ('/"/','/{\n *<(.+?)([\r\n]+?)}/i';
$replace = array ('\"','document.write(\"<$1
\';
preg_replace($pattern,$replace,$jscache0j);
La regex doit commencer par remplacer les " par \" puis elles s'occupe des balises...
A toi d'adapter (corriger) ce bout de script... Je pense que cela devrait marcher.
Marsh Posté le 05-03-2002 à 12:08:39
merci pour ton script, même si je suis encore assez loin de tout y comprendre, ça fait pas du tout longtemps que je tente de manipuler les expressions régulières
Marsh Posté le 05-03-2002 à 08:59:22
Salut ! J'ai une petite question aux pros en la matière
J'ai ce code ci
qui permet de détecter les ouvertures de balise en début de ligne et ajouter document.write(" <xxxxxxxxxxxx> " )
<xxxxxxxxxxx> étant par exemple la chaine d'origine
$jscache0j=preg_replace("{\n *<(.+?)([\r\n]+?)}i","\ndocument.write(\"<$1\" )",$jscache0j);
Ca marche très bien, mais j'aurais aimé en plus que dans $1 il remplace tous les " par des \" . est-ce possible ?
merci d'avance
---------------
http://www.DJMAXI.FR.ST