13.9 Eine Webseite mit Markup versehen

Problem

Sie möchten eine Webseite, zum Beispiel mit Suchergebnissen, so anzeigen, dass bestimmte Wörter hervorgehoben sind.

Lösung

Verwenden Sie preg_replace( ) mit einem Array aus Mustern und Ersetzungstexten:

$patterns = array('\bHund\b/', '\bKatze\b');
$replacements = array('<b style="color:black;background-color=#FFFF00">Hund</b>',
                      '<b style='color:black;background-color=#FF9900">Katze</b>');
while ($page) {
    if (preg_match('{^([^<]*)?(</?[^>]+?>)?(.*)$}',$page,$matches)) {
        print preg_replace($patterns,$replacements,$matches[1]);
        print $matches[2];
        $page = $matches[3];
    }
}

Diskussion

Der mit preg_match( ) verwendete reguläre Ausdruck findet eine Übereinstimmung mit einem möglichst langen Text vor einem HTML-Tag, ...

Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.