Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1602 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Surlignage de mots efficace

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Surlignage de mots efficace

n°1022954
philipMo
Posté le 24-03-2005 à 03:32:12  profilanswer
 

Bonjour,  
 
Mon but est de surligner des mots dans un texte.  
A priori, c'est simple. Mais le faire de manière efficace est une autre histoire... Voici un texte d'exemple et deux solutions foireuses :
 

  • Texte d'exemple :

Le Dell 1704FPV nouvelle version est équipé de la 1ère dalle PVA 16 ms. Serait-ce le 1er écran à concilier un temps de réponse rapide avec de larges angles de vue et un noir profond ?
 
 

  • Solution 1 :
Code :
  1. $chaineOk = eregi_replace ($mot, '<span style=\'background-color:red;\'>'.$mot.'</span>', $chaine);


Foireux à souhait : si mon mot est "le", je vais également surligner une partie des mots "nouvelle", "dalle", "angles".
 
 

  • Solution 2 :
Code :
  1. $chaineOk = eregi_replace ('[[:<:]]'.$mot.'.?[[:>:]]', '<span style=\'background-color:red;\'>'.$mot.'</span>', $chaine);


Plus intéressant : ça surligne bien le mot désiré comme il faut... mais il y a un problème. Pour les mots dont la première ou la dernière lettre est accentuée, pas de surlignage (ex: "écran" ). Pourtant, si le caractère accentué est au milieu du mot (ex: "manière" ), il n'y a pas de problème...
 
 

  • Donc je ne comprends pas trop ce dysfonctionnement...  :(  


  • Et je cherche la meilleure solution pour surligner des mots efficacement...  


Une idée ????


Message édité par philipMo le 24-03-2005 à 20:34:58
mood
Publicité
Posté le 24-03-2005 à 03:32:12  profilanswer
 

n°1023005
soju
One shot !
Posté le 24-03-2005 à 09:09:40  profilanswer
 

philipMo a écrit :

Et je cherche la meilleure solution pour surligner des mots efficacement...


ereg_replace n'est surement pas le meilleur moyen, si tu veux faire de la regexp utilise preg_replace et lit la doc : http://fr.php.net/manual/fr/refere [...] syntax.php

n°1024115
philipMo
Posté le 24-03-2005 à 20:34:23  profilanswer
 

soju a écrit :

ereg_replace n'est surement pas le meilleur moyen, si tu veux faire de la regexp utilise preg_replace et lit la doc : http://fr.php.net/manual/fr/refere [...] syntax.php


 
Merci pour le conseil.
 
Pour ceux que ça intéresse, voici la fonction que j'ai créée, fonction de base qui reste bien sûr à améliorer mais qui fonctionne très bien.  
 

Code :
  1. function surligner($mot, $texte, $couleur) {
  2. $mot_motif = '`(\b)('.$mot.')(\b)`i';
  3. $mot_sortie = '<span style=\'background-color:'.$couleur.';\'>'.$mot.'</span>';
  4. $texteSurligne = preg_replace($mot_motif, $mot_sortie, $texte);
  5. return $texteSurligne;
  6. }


 
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Surlignage de mots efficace

 

Sujets relatifs
[Résolu][ASPX][C#] Connaitre le titre d'une colonne DataGrid[RESOLU] Autoriser un caractère dans un REGEX
Récupérer l'entré standard [Résolu][SQL]Insérer un espace toutes les 2 lettres dans un champ [Résolu]
creer rang phpBB pose probleme (resolu)[XML/XSL] tri dynamique [résolu]
[Résolu] executer un fichier et afficher le résultat[Résolu ] - VBS - Comment concaténer
[Résolu][ASP.NET][C#] Rajouter une couche apres le DataBind[Access][Résolu] Impossible de modifier des données
Plus de sujets relatifs à : [Résolu] Surlignage de mots efficace


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR