J'ai une chaîne qui représente les résultats de recherche, par exemple,
on recherche "PHP" et la châine donne un extrait de la page:
'Le PHP est un langage génial. Parmis les solutions disponibles, le
PHP... blah'
Je veux surligner le mot cherché (exemple:)
'Le <span class="highlight">PHP</span> est un langage génial. Parmis les
solutions disponibles, le <span class="highlight">PHP</span>... blah'
egregi_replace marche très bien. Le seul hic, c'est dans un cas comme
ceci:
je cherche "actuel". Il trouve
"blah, blah. Actuellement, blah"
Je vais avoir
"blah, blah. actuellement, blah" - le problème étant le fait que le
remplacement ne commence pas en Majuscule. Aujourd'hui, je contourne en
mettant tout en MAJUSCULE.
JE CHERCHE donc, un moyen de faire quelque chose comme ceci:
En d'autre terms, je voudrais remplacer 'string' avec '<span
class="truc">StRinG</span>' en respectant la casse.
Y aurait-il une fonction ou un moyen simple?
Je ne pense pas qu'il soit intéressant d'écrire une fonction qui examine
la chaîne lettre par lettre, car il y a de multiples remplacements dans
chaque buffer et les résultats de recherche peuvent boucler plusieurs
fois.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
CrazyCat
Hugh Jass wrote:
JE CHERCHE donc, un moyen de faire quelque chose comme ceci: $resultat = mafonct("string","<span>$arg</span>","StRinG"); En d'autre terms, je voudrais remplacer 'string' avec '<span class="truc">StRinG</span>' en respectant la casse.
tu devrais t'orienter vers preg_match() qui te permet de récupérer la chaine qui correspond à la recherche...
-- Tchattez en liberté: http://www.c-p-f.net Tout sur les eggdrops: http://www.c-p-f.org ML @ http://groups-beta.google.com/group/eggdrops
Hugh Jass wrote:
JE CHERCHE donc, un moyen de faire quelque chose comme ceci:
$resultat = mafonct("string","<span>$arg</span>","StRinG");
En d'autre terms, je voudrais remplacer 'string' avec '<span
class="truc">StRinG</span>' en respectant la casse.
tu devrais t'orienter vers preg_match() qui te permet de récupérer la
chaine qui correspond à la recherche...
--
Tchattez en liberté: http://www.c-p-f.net
Tout sur les eggdrops: http://www.c-p-f.org
ML @ http://groups-beta.google.com/group/eggdrops
JE CHERCHE donc, un moyen de faire quelque chose comme ceci: $resultat = mafonct("string","<span>$arg</span>","StRinG"); En d'autre terms, je voudrais remplacer 'string' avec '<span class="truc">StRinG</span>' en respectant la casse.
tu devrais t'orienter vers preg_match() qui te permet de récupérer la chaine qui correspond à la recherche...
-- Tchattez en liberté: http://www.c-p-f.net Tout sur les eggdrops: http://www.c-p-f.org ML @ http://groups-beta.google.com/group/eggdrops
Philippe Chaissac
Salut,
JE CHERCHE donc, un moyen de faire quelque chose comme ceci:
function highlight($mot,$texte) { return eregi_replace("($mot)","<span class='fluo'>1</span>",$texte); }
Excéllent, merci!
Nyro Xeo
function highlight($mot,$texte) { return eregi_replace("($mot)","<span class='fluo'>1</span>",$texte); }
Excéllent, merci! Comment ça, "excellent" ? Je comprends pas, le résultat ne résoud pas le
problème initial !?
Si j'écris ***************************** <?php echo highlight('actuel', 'Bonjour à tous, je recherche actuellement un livre sur la POO.'); ?> ***************************** Cela surlignera le 'actuel' en laissant le 'lement' non surligné !
D'ailleurs, en passant, preg_replace() est plus rapide que eregi_replace(), donc il est préférable de l'utiliser !
function highlight($mot,$texte) {
return eregi_replace("($mot)","<span class='fluo'>\1</span>",$texte);
}
Excéllent, merci!
Comment ça, "excellent" ? Je comprends pas, le résultat ne résoud pas le
problème initial !?
Si j'écris
*****************************
<?php
echo highlight('actuel', 'Bonjour à tous, je recherche actuellement un
livre sur la POO.');
?>
*****************************
Cela surlignera le 'actuel' en laissant le 'lement' non surligné !
D'ailleurs, en passant, preg_replace() est plus rapide que
eregi_replace(), donc il est préférable de l'utiliser !
function highlight($mot,$texte) { return eregi_replace("($mot)","<span class='fluo'>1</span>",$texte); }
Excéllent, merci! Comment ça, "excellent" ? Je comprends pas, le résultat ne résoud pas le
problème initial !?
Si j'écris ***************************** <?php echo highlight('actuel', 'Bonjour à tous, je recherche actuellement un livre sur la POO.'); ?> ***************************** Cela surlignera le 'actuel' en laissant le 'lement' non surligné !
D'ailleurs, en passant, preg_replace() est plus rapide que eregi_replace(), donc il est préférable de l'utiliser !