Anzeige:
Ergebnis 1 bis 2 von 2

Thema: Suchbegriffe hervorheben mit preg_replace()

  1. #1
    Registrierter Benutzer
    Registriert seit
    07.08.2002
    Beiträge
    114

    Unhappy Suchbegriffe hervorheben mit preg_replace()

    Hallo,

    ich habe ein mittelschweres Problem mit den von mir so geliebten regulären Audrücken.
    Ich möchte in den Ergebnissen einer Suche die gesuchten Begriffe hervorheben. Da ich das ganze mit einem <span>-Container tue, möchte ich allerdings nicht, dass auch die URL von einem Link mit hervorgehoben wird.
    Bsp:
    Code:
    <!-- vorher -->
    <a href="http://www.haloorbit.de">Halo Orbit</a>
    
    <!-- nachher -->
    <a href="http://www.haloorbit.de"><span class="blam">Halo</span> Orbit</a>
    Ich krieg es einfach nicht hin, dass er die Links (und sämtliche anderen html-tags) ignoriert. Ich hab das php-manual schon durchforstet und hier im forum gesucht und tausend sachen probiert, aber alles hat nichts geholfen.

    soweit bin ich bisher:
    PHP-Code:
    //
    // Färbe die gesuchten Worte bunt
    //
    $words explode' '$search_words );
    for( 
    $j 0$j count$words ); $j ++ )
    {
        
    $news[$i]['news_headline'] = preg_replace"!($words[$j])!i""<span class=\"blam\">$1</span>"$news[$i]['news_headline'] );
        
    $news[$i]['news_text'] = preg_replace"!($words[$j])!i"'<span class="blam">$1</span>'$news[$i]['news_text'] );

    soweit funktioniert das auch, nur, dass eben urls mit geändert werden. Wie schließe ich die links aus?
    Geändert von Xerxes (23-01-2004 um 22:49 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    07.08.2002
    Beiträge
    114
    Hab hier (http://www.dclp-faq.de/q/q-regexp-ersetzen.html) doch noch was gefunden:
    PHP-Code:
    // $s in $t durch $r ersetzen:
    preg_replace("/((<[^>]*)|$s)/e"'"\2"=="\1"? "\1":"$r"'$t);

    // $s case-insensitive in $t hervorheben:
    preg_replace("/((<[^>]*)|$s)/ie"'"\2"=="\1"? "\1":"<b>\1</b>"'$t); 
    danke, falls sich schon jemand nen kopf gemacht hat ;-)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •