Problème avec une regex :(
5 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
Problème avec une regex :(
J'ai besoin de chercher certain mots dans une chaine afin de les mettre en gras.
Le problème c'est que le premier mot et le dernier mot de la chaine en question ne sont pas mis en gras.
Je pourrais le contourner en ajoutant un espace avant et après la chaine mais on doit bien pouvoir faire autrement.
A l'aide !!!
Voici mon bout de code :
Le problème c'est que le premier mot et le dernier mot de la chaine en question ne sont pas mis en gras.
Je pourrais le contourner en ajoutant un espace avant et après la chaine mais on doit bien pouvoir faire autrement.
A l'aide !!!
Voici mon bout de code :
- Code: Tout sélectionner
preg_replace('/([^a-zA-Z])('.$mot.')([^-a-zA-Z])/i', '$1<strong>$2</strong>$3', $chaine)
- Code: Tout sélectionner
preg_replace('/([\s,\.()])('.$mot.')([\s,\.()])/i', '$1<strong>$2</strong>$3', $chaine)
Xele a écrit:Essaye ca :
preg_replace("/\b".$mot."\b/i", "<strong>$2</strong>", $chaine);
Merci...
Dire que je me suis pris la tête pendant un moment pour trouver.
Pour info, ce que j'ai besoin est ceci :
- Code: Tout sélectionner
preg_replace('/(\b)('.$mot.')(\b)/i', '$1>strong>$2</strong>', $chaine);
$mot = une chaine de caractère du genre :
$mot = 'une expression à mettre en gras|une autre|mot|expression|etc';
Pour le moment, j'insérais du BBcode dans ma base de donnée pour intéragir avec certains mots [ b ] mot à mettre en gras [ /b ] par exemple.
Hormis le fait que c'est chiant d'ajouter ce BBcode d'une part et que les mots à mettre en gras peuvent être différent suivant le contexte de la page, j'ai donc créer un champ dans ma BDD dans lequel j'insère les mots et expressions à mettre en exergue suivant le contexte ou la page.
D'où l'intérêt de ma demande.
Par contre dans le même ordre d'idée, j'aurais besoin d'une fonction similaire pour mettre un lien sur certain des mot de mon site qui enverrais vers mon glossaire.
Pour cette pratique, je souhaite que le llien n'apparaissent que sur la première occurence d'un mot présent dans $mot contrairement à la mise en exergue.
De mes test, si je limite à une occurence le changement, il me change que le premier mot qu'il rencontre parmi ceux de la liste si je ne veux pas passer par une boucle.
Comment faire pour éviter de créer une boucle en traitant les mots ou expressions séparément avec preg_replace ??
5 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Google Code Jam 2003
- Référencement d'un forum phpBB
- Matt Cutts déclare la guerre au spamdexing en français (et autres langues)
- Comment éviter les contenus dupliqués (avec/sans le www)
- Commande site: sur Google et pages ignorées
- Du nouveau dans le Centre pour Webmasters de Live Search
- Comment résoudre les problèmes de Bourbon...
- Live Search corrige le problème de referrers
- Le détournement de page par redirection
- Nouvelle version de notre FAQ
- Problème de regex
- Problème d'écriture de regex
- [Regex] modifier une regex existante
- Problème de boucle (regex)
- [Regex] Problème url cliquable
- [PHP] Probleme avec les regex
- Regex [a-zA-Z0-9_]
- regex
- regex preg_match
- Soucis de regex
- Soucis de regex !
- REGEX ET MYSQL
- Quelle Regex ?
- Regex javascript
- Fort en Regex ?
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités




le forum