Bonjour à tous,
je cherche à faire une regex pour supprimer les commentaires inline php d'un fichier,
en prenant en compte le fait que la balise de fin de php (?>) est tout de même interprétée dans ce type de commentaire (et donc met fin au commentaire)
j'ai donc bidouillé un truc comme ça:
Mais ça ne marche qu'a moitié, par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part preg_replace("#(//[^>]*(\?>|\n))#", "", $content)
est bien supprimé,
Code : Sélectionner tout - Visualiser dans une fenêtre à part // normal comment
ensuite:
Est bien remplacé par <div>
Code : Sélectionner tout - Visualiser dans une fenêtre à part // another test ?><div>
par contre
est également remplacé par <div> alors que toute la ligne devrait être supprimée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part // last test !> <div>
et j'ai l'impression qu'il y a également un problème: il prend en compte plusieurs lignes :'(
Le problème étant que la partie [^>] empêche le caractère ">" dans le commentaire, alors que je cherche a interdire "?>" (et %> aussi dans le cas ou ce type de balise est autorisé par le serveur)
donc, pour faire simple, je cherche à créer un règle qui dit:
* n'importe quel caractère sauf s'il s'agit de "?>" ou "%>" ou "\n"
Quelqu'un sait-il comment faire ?
Partager