On 28 Jun 2006 11:42:44 -0700, "Mille Jacobsen" <millekysmund@ofir.dk>
wrote:
>Her er "Kvarteret" fremhævet med rødt, men det kunne jo være alle
>mulige andre ord istedet.
I den helt simple udgave kan du lave en søg&erstat i den tekst, du vil
markere et ord i. fx:
<?php
$text = "Her er min tekst. Er du med?";
$search = "er"; // dette input kan komme fra brugeren
$replace = "<span style='color: red;'>".$search."</span>";
print str_replace($search,$replace,$text);
?>
En mere avanceret vil så tillade forskelle i store og små bogstaver
(så "Er" medtages i eksemplet) og eventuelt kun søge ved grænser af
ord (så "Her" ikke medtages i eksemplet").
Her kan man bruge regulære udtryk, der dog kan være noget komplekse at
give sig i kast med. Men et eksempel kunne være:
<?php
$text = "Her er min tekst. Er du med?";
$search = "er"; // dette input kan komme fra brugeren
$regex_search = '/\b('.preg_quote($search,'/').')\b/i';
$regex_replace = "<span style='color: red;'>$1</span>";
print preg_replace($regex_search,$regex_replace,$text);
?>
Denne retter "er" og "Er" i teksten til rødt. Den tager dog ikke højde
for at $text kan indeholde HTML, og at brugeren kan få spøjse
resultater ved at søge efter HTML-tags. Men til mange almindelige
formål vil den være helt fin.
--
- Peter Brodersen
Ugens^WMånedens^WSommerens værktøj - Find vej:
www.findvej.dk
Nu med link direkte til en adresse, fx:
www.findvej.dk/Nybrogade2,1203