Bonjour,
Voilà, j'ai pas l'habitude de poster, mais là ça fait vraiment longtemps que cherche sur le web, le/les forums, etc, sans résultat... ^^
J'en viens donc à solliciter votre aide. =)
Bon !
Mon problème : Je souhaite faire un preg_replace sur une chaîne qui nous vient directement d'un code source. De ce type :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part <td id="2-5" style="padding:0px;width:30px;height:30px;background:url(maps/2_petit_couloir/2-5.jpg);" onClick="propriete_case='';type='';test(this.id)"></td>
Je travaille donc sur UNE ligne venant du fichier source et je souhaite modifier une partie de ce code par une expression regulière en php, de cette façon :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $a_editer='/onClick=".*">/i'; //la regex qui va trouver ce que je veux changer $editer='onClick="test()">'; //ce que je veux y mettre
Je souhaite donc pouvoir changer tout ce qui peut se trouver dans l'attribut onClick...
Dans mon code, j'en viens à faire ceci, donc :
Où $line est la ligne source à editer du type donné au-dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part preg_replace($a_editer,$editer,$line);
Donc, ce devrait être tout bête, mais ma regex marche pas !
en faisant simplement
ça marche, mais ça va trop loin, évidement, cela va jusqu'à la fin de la ligne ; et puisque j'aimerais que ça s'arrête à la première balise de fermeture qu'elle rencontre, je devrais lui dire de s'arrêter à ceci : > ; mais ça ne veut pas ! lol
Code php : Sélectionner tout - Visualiser dans une fenêtre à part $a_editer='/onClick.*/i';
Est-ce dû aux caractères contenu dans le code source, au fait de lui dire de tout prendre (.*) jusque (>)... Ce me semblait être une regex toute bête, mais j'avoue que là je comprend pas ! ^^
J'ai fait des tonnes de tests, mais il semble que dès que je lui demande de chercher des symboles du genre >,<,ou ", ça ne veut plus marcher... même avec les \ devant ! ou entre crochets aussi ... je bloc !
Si vous avez une idée, une solution ? Je vous en remercierais d'avance !
Partager