Frank: Hilfe bei Stringersetzung gesucht!

Hallo *,

ich würde gerne einen Suchstring innerhalb eines HTML-textes Fett ausgeben. Bei der Suche soll die Groß- und Kleinschreibung des Suchstrings ignoriert werden. Wenn also jemand mnach 'pute' sucht soll sowohl 'Computer' als auch 'Pute' gefunden werden. Was auch gut funktioniert. Dem eingegebenen Suchstring möchte ich nun Fett ausgeben. Leider wird bei meinem Script das Original Suchstring ausgegeben, was zur Folge hat das 'pute' klein geschrieben ausgegeen wird:

$bold = '<b>'.$query.'</b>';
  $tab_1 = eregi_replace("$query", "$bold", $tab[1]);
 echo "$tab[0]"."$tab_1"."$tab[2]";

Hat jemand eine bessere Lösung, um die Rechtschreibung beibehalten zu können?

Vielen Dank für jede Antwort.
Gruß Frank :-)

  1. eregi_replace($searchword,"<b class="red">\0</b>",$text);

  2. Hallo,

    es gibt mit PHP eine funktion, das er den 1. Buchstaben groß schreibt.

    Dann suchst du einmal nach dem kleinen Wort und dann mit dem großem Wort

    //Klein suchen
    $bold = '<b>'.$query.'</b>';
      $tab_1 = eregi_replace("$query", "$bold", $tab[1]);
     echo "$tab[0]"."$tab_1"."$tab[2]";

    //Groß suchen
    $query = ucwords($query);
    $bold = '<b>'.$query.'</b>';
    $tab_1 = eregi_replace("$query", "$bold", $tab[1]);
    echo "$tab[0]"."$tab_1"."$tab[2]";

    MFG
    Andavos

    --
    http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
  3. Hallo Frank,

    Hat jemand eine bessere Lösung, um die Rechtschreibung beibehalten zu können?

    ob es besser ist weiß ich nicht, es verhindert aber auf jeden Fall ein Problem mit dem du konfrontiert werden wirst. Du nutzt HTML-Tags, daher gehe ich davon aus, dass Du sie auch noch für anderes als nur die font-weight zuordnung nutzen möchtest. Stell Dir vor du hast den Text:

    "... unter dem folgenden Link finden Sie die <a href="search.php">Suche</a> ..."

    Und suchst in diesem Text nach den Zeichen "hr" (wer weiß warum). Du wirst folgendes erhalten:

    "... unter dem folgenden Link finden Sie die <a <b>hr</b>ef="search.php">Suche</a> ..."

    Und ich glaube nicht, dass das wünschenswert ist. Ich habe das Problem damals mit diesem RegEX gelöst:

    $text = preg_replace("/((<[^>]*)|$search)/ie", '"\2"=="\1"? "\1":"<b>\1</b>"', $text);

    Gruß,
    small-step