[PHP] Expressions régulières

Expressions régulières [PHP] - Programmation

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
Reply

Marsh Posté le 05-03-2002 à 08:59:22   

Reply

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.

Reply

Marsh Posté le 05-03-2002 à 10:27:17    

Merci quand même !
Je vais ruser alors  :D


---------------
http://www.DJMAXI.FR.ST
Reply

Marsh Posté le 05-03-2002 à 10:53:53    

ca doit etre possible, mais peut etre en faisant 2 fncts replace


---------------
All we need is a soul revolution
Reply

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


---------------
http://www.DJMAXI.FR.ST
Reply

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=


---------------
All we need is a soul revolution
Reply

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.

Reply

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 :) :crazy:


---------------
http://www.DJMAXI.FR.ST
Reply

Sujets relatifs:

Leave a Replay

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