Um die Treffer bei einer Suchanfrage kenntlich zu machen, wird häufig
ein Teilabschnitt des Textes angezeigt welcher den oder die Suchbegriffe enthält.
Die gefundenen Begriffe werden dabei zusätzlich hervorgehoben.
Dieses Skript ist ein Beispiel dafür.
<?php
/**
* suchergebnisse
*/
$example = <<< EOT
Um die Treffer bei einer Suchanfrage kenntlich zu machen, wird häufig
ein Teilabschnitt des Textes angezeigt welcher den oder die Suchbegriffe enthält.
Die gefundenen Begriffe werden dabei zusätzlich hervorgehoben.
Dies ist ein Beispiel dafür.
EOT;
function mark_hits($text, $search)
{
$w = preg_quote($search);
$n = 40;
$dummy = preg_match("#\b.{0,$n}$w.{0,$n}\b#si",$text, $match);
if ($dummy) {
$result = '... '.preg_replace("#($w)#i", "<strong style='color:#000;'>\\1</strong>",$match[0]).' ...';
} else {
$result = "Die Suche nach <em>$search</em> lieferte keine Treffer.";
}
return $result;
}
echo $example;
echo '<hr>';
echo mark_hits($example, 'begriff');
echo '<hr>';
echo mark_hits($example, 'hits');
?>