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 07/07/2011, 14h00   #1
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 1
Points : 1
Par défaut Problème pour concevoir une expression régulière

Bonjour,

Je cherche à utiliser la fonction preg_replace dans le moteur de recherche de mon site (pour précision c'est un site dynamique ou le contenu des pages se trouve dans une DB).

Lorsqu'un visiteur saisie une chaine de caractères dans ce moteur de recherche cela lui affiche un certain nombre de résultat et si il en sélectionne un, il se retrouve sur la page concernée avec toutes les occurrences de la chaine recherchée surlignées en jaune.

seulement voilà ma fonction preg_replace qui devrait exclure les balises html de mise en forme de la page ne le fait pas tout le temps, et de temps à autre je me retrouve avec balises html surlignées en jaunes....

ex: si je cherche la chaine "réf" il va me ramener des pages contenants les mots "référant, référence...." mais aussi les balises html "<a href="

voilà l'expression régulière que j'utilise :

Code :
1
2
3
4
 
$regex2 = "#([^<][\w\s=/\"_-]+)(".$_SESSION['recherche_litterale'].")([\w\s]+[^>])#isU";
 
echo preg_replace($regex2,"$1<font style=\"background-color: #ffff00\">$2</font>$3",$rq['art_contenu']);
merci d'avance de votre aide, moi là je tourne en rond....
lokicorp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 14h56   #2
Modérateur
 
Avatar de ThomasR
 
Homme Thomas Rambaud
Développeur Web
Inscription : décembre 2007
Messages : 2 140
Détails du profil
Informations personnelles :
Nom : Homme Thomas Rambaud
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 2 140
Points : 2 885
Points : 2 885
Bonjour,

Pourquoi ne pas utiliser http://fr.php.net/strip_tags pour supprimer certaines balises HTML ?
__________________
Développeur Web, accessoirement geek (ou l'inverse)
http://thomasrambaud.com
ThomasR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 15h08   #3
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 1
Points : 1
Salut,

le problème de strip_tags c'est que ça supprime toutes les balises html ce qui implique que ça supprime aussi toute ma mise en forme.
lokicorp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 08h23   #4
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 1
Points : 1
Bon j'ai trouvé tout seul comme un grand... Pour ceux que ça peut intéresser voilà ma regex :


Code :
1
2
3
$regex2 = "#(>[\w\sàáâãäåæçèéêëìíîïðñòóôõöøœšÞùúûüýÿ÷%§~{}|@°£¤µ&$€\\/\(\).,;_:'\"\#\[\]!?*+-]*)(".$_SESSION['recherche_litterale'].")([\w\sàáâãäåæçèéêëìíîïðñòóôõöøœšÞùúûüýÿ÷%§~{}|@°£¤µ&$€\\/\(\).,;_:'\"\#\[\]!?*+-]*<)#isU";
 
echo preg_replace($regex2,"$1<font style=\"background-color: #ffff00\">$2</font>$3",$rq['art_contenu']);
lokicorp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 09h21   #5
Modérateur
 
Avatar de ThomasR
 
Homme Thomas Rambaud
Développeur Web
Inscription : décembre 2007
Messages : 2 140
Détails du profil
Informations personnelles :
Nom : Homme Thomas Rambaud
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 2 140
Points : 2 885
Points : 2 885
Citation:
Envoyé par lokicorp Voir le message
Salut,

le problème de strip_tags c'est que ça supprime toutes les balises html ce qui implique que ça supprime aussi toute ma mise en forme.
Tu n'as pas dû lire la documentation, tu peux préciser les balises à supprimer. Concernant la mise en forme, sachant qu'elle est faite par les balises, il est évident que les supprimer supprime la mise en forme..
__________________
Développeur Web, accessoirement geek (ou l'inverse)
http://thomasrambaud.com
ThomasR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 13h12   #6
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 1
Points : 1
mmmmm... ca veut dire que dois lui préciser toutes les balises html existantes et avec toutes les possibilités de critères existantes ??? si c'est le cas ça sera pas bien pratique.
lokicorp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web