Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/03/2007, 15h45   #1
Nouveau Membre du Club
 
Inscription : mai 2003
Messages : 106
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 106
Points : 39
Points : 39
Envoyer un message via AIM à popogendarme
Par défaut enlever les commentaire html

Bonjour à tous,

Je cherche à créer une expression régulière pour enlever les commentaires dans le code HTML.

en gros <!-- mon texte -->

J'ai testé pas mal de truc mais sans grand succès. Je me demandais si quelqu'un n'avait jamais eut ce probleme
popogendarme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2007, 16h09   #2
Nouveau Membre du Club
 
Inscription : mai 2003
Messages : 106
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 106
Points : 39
Points : 39
Envoyer un message via AIM à popogendarme
j'ai fait ça mais ça marche pas à tous les coups si le commentaire est placé dans le vide ça va, mais par sur certain site, les commentaires sont incrusté dans le code et là ça marche pas.
popogendarme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2007, 16h11   #3
Membre chevronné
 
Avatar de haltabush
 
Développeur Web
Inscription : avril 2005
Messages : 726
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 726
Points : 790
Points : 790
Code :
"`(.)*?<!--(.)*?-->(.)*?`"
?
haltabush est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2007, 00h00   #4
Membre éprouvé
 
Avatar de goodpz
 
Inscription : février 2007
Messages : 475
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 475
Points : 474
Points : 474
Le problème c'est que '.' ne match jamais une nouvelle ligne (c'est à dire '\r' et/ou '\n')

Pour résoudre ce problème, il faut ajouter le modifieur 'PCRE_DOTALL' qui est le 's'. Exemple:

Code :
preg_replace('/<!--.*?-->/s', '', $str)
goodpz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2007, 21h32   #5
Nouveau Membre du Club
 
Inscription : mai 2003
Messages : 106
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 106
Points : 39
Points : 39
Envoyer un message via AIM à popogendarme
salut,
ça ne marche ta solution, t'es sur que c'est pas juste en perl?
popogendarme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2007, 22h11   #6
Membre éprouvé
 
Avatar de goodpz
 
Inscription : février 2007
Messages : 475
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 475
Points : 474
Points : 474
Code :
1
2
3
4
5
6
7
$str = "<html><tag>dfdf<soup>sdsdsd<!-- AA 
 BB CC  
--> kh
 
hhh<!-- AA BB CC DD--><f> khkh
</html>";
echo htmlentities(preg_replace('/<!--.*?-->/s', '', $str));
J'ai l'impression que ça fonctionne bien...
goodpz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h19.


 
 
 
 
Partenaires

Hébergement Web