Supprimer les commentaires

h2o
Eléphant du PHP | 81 Messages

04 août 2005, 12:06

J'ai des fichiers textes que j'édite dans un champ textarea d'un formulaire.
Ce texte contient des commentaires entre les balises prévus à cette effet.

Exemple :
<!-- Texte modifie le 2005-08-04 - 11:55 par Jean-Marie Hoornaert -->

Je voudrais lors de l'édition, supprimer le commentaire et ses balises. Car ensuite, le texte est sauvegardé utilisant htmlentities, et les commentaires deviennent donc visibles sur la page html.

Je sais que les expressions régulières peuvent résoudre ce problème, mais je n'y comprend rien.

Si quelqu'un peut me donner, et la solution à problème, et un lien vers un "tutoriel" concernant les expressions régulières. Merci.
Jean-Marie Hoornaert - h2o
Aide au développement et formation FileMaker, xml et AppleScript

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

04 août 2005, 12:29

http://www.phpfrance.com/tutoriaux/inde ... pcre-ripat

Voici ce qu'on veut supprimer : tout ce qui commence par <!-- et finit par -->
Le masque sera tout simplement /<!--.*?-->/s (le s final indique qu'on peut sauter des lignes dans les commentaires)

h2o
Eléphant du PHP | 81 Messages

04 août 2005, 13:03

Merci pour le lien.

J'ai cependant du louper quelque chose.
$content = "ici le texte. <!-- ici le commentaire -->";
$content = eregi_replace("/<!--.*?-->/s","", $content);
Retourne une chaîne vide.
Où est l'erreur ?
Jean-Marie Hoornaert - h2o
Aide au développement et formation FileMaker, xml et AppleScript

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

04 août 2005, 13:19

J'avoue ne pas comprendre pourquoi il te retourne une chaine vide, je me serais plutot attendu à ce qu'il te retourne la chaine d'origine.
C'est un masque PCRE, donc à utiliser avec preg_replace...

h2o
Eléphant du PHP | 81 Messages

04 août 2005, 13:29

Bon, j'ai encore beaucoup à apprendre.

Merci pour le coup de pouce.
Jean-Marie Hoornaert - h2o
Aide au développement et formation FileMaker, xml et AppleScript