[PHP] Highlight search word

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Bever
  • Registratie: Maart 2001
  • Laatst online: 16:03
Ik wil (net als hier op GoT) een woord highlighten in een text. Dat lukt opzich wel maar als het woord ook in een html-tag voorkomt dan wordt de output dus niet goed weergegeven.
Dit heb ik nu:
PHP:
1
2
3
4
5
6
<?
  $highlight = "TeSt";
  $body = "<a href='http://localhost/test_forum/'>Test forum</a><br><br> test 123";
  $output = preg_replace("!$highlight!is","<b style='color:black;background-color:#00FF00'>$0</b>",$body);
  Print $output;
?>


Nu moet er dus nog iets bij komen waardoor het wel goed weergegeven wordt. Ik heb de volgende links al bekeken maar niet tot het juiste resultaat gekomen:
[rml][ php/preg] higlighten woorden, niet in < >[/rml]
Keyword highlite buiten html-regex (Femme?)

Wie weet hoe het wel kan?

[ Voor 11% gewijzigd door Bever op 29-12-2002 13:16 ]


Acties:
  • 0 Henk 'm!

Verwijderd

je kan ook gewoon:
$woord = "test";
$light = "FFCC00"; // kleur van highlight

$text = str_replace("$woord", "<font color=$light>$woord</font>", $text);

// VOORBEELD
Dit is een test die lang kan gaan testen
// WORD
Dit is een <font color=FFCC00>test</font> die lang kan gaan <font color=FFCC00>test</font>en

Acties:
  • 0 Henk 'm!

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Dit: Pcre pattern modifiers geeft dit:
PHP:
1
2
3
$output = preg_replace("/$highlight/i",
"<b style=\"color:black;background-color:#00FF00\">\\0</b>",
$body);
Nu moet je alleen nog de tekst binnen de < en > niet highlighten. Dat staat wel in dit topic en is nuttig studeermateriaal ;) .

[ Voor 9% gewijzigd door RedRose op 29-12-2002 14:04 . Reden: layout ]

Sundown Circus


Acties:
  • 0 Henk 'm!

  • Bever
  • Registratie: Maart 2001
  • Laatst online: 16:03
De 2 antwoorden hierboven heb ik niet echt heel veel aan. Want wat die doen dat werkt al. Maar tussen de < en > moet dus niet gehighlight. In dat topic staat het idd, maar dat krijg ik niet werkend.