Webmaster Hub: Probleme pour concevoir une expression reguliere - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Probleme pour concevoir une expression reguliere Noter : -----

#1 L'utilisateur est hors-ligne   lokicorp 

  • Groupe : Membre
  • Messages : 4
  • Inscrit(e) : 07-juillet 11

Posté 07 juillet 2011 - 12:48

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 :

$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....
0

#2 L'utilisateur est hors-ligne   Clair de Lune 

  • Groupe : Membre+
  • Messages : 210
  • Inscrit(e) : 16-avril 04
  • Genre:Homme
  • Localisation:Giens
  • Société:Camping Clair de Lune

Posté 07 juillet 2011 - 13:57

Bonjour

As-tu essayé de faire le "nettoyage" avec la fonction PHP strip_tags ?
0

#3 L'utilisateur est hors-ligne   lokicorp 

  • Groupe : Membre
  • Messages : 4
  • Inscrit(e) : 07-juillet 11

Posté 07 juillet 2011 - 14:09

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.
0

#4 L'utilisateur est hors-ligne   Leonick 

  • Groupe : Hubmaster
  • Messages : 1 313
  • Inscrit(e) : 07-mars 05
  • Genre:Homme
  • Localisation:Val de Marne

Posté 07 juillet 2011 - 21:56

Ca ne répond pas directement à ta question, mais voici un très bon outil pour tester les regex offline http://weitz.de/regex-coach/ : tu prends le code html des pages où ça ne passe pas et tu peux ainsi affiner la regex
0

#5 L'utilisateur est hors-ligne   lokicorp 

  • Groupe : Membre
  • Messages : 4
  • Inscrit(e) : 07-juillet 11

Posté 08 juillet 2011 - 06:48

Merci pour l'info je vais regarder ça.
0

#6 L'utilisateur est hors-ligne   lokicorp 

  • Groupe : Membre
  • Messages : 4
  • Inscrit(e) : 07-juillet 11

Posté 08 juillet 2011 - 07:24

Bon j'ai trouvé tout seul comme un grand... Pour ceux que ça peut intéresser voilà ma regex :

$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']);

0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)