problem mit einem preg_replace ausdruck

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • problem mit einem preg_replace ausdruck

    Hallo

    Ich habe mir eine Suche mit einem Highlight des gesuchten Textes gebaut. Um den Such-Text hervorzuheben verwende ich folgende Funktion:
    PHP-Code:
    function highlight($text,$words)
    {
     if(
    $words == "") return $text;
     
    $words split(':',$words); //
     
    $color=array("5AE6FF","BDB76B","90EE90","FA8072","EE82EE","B1B1B1","ADD8E6"); 
     for(
    $i 0$i sizeof($words); $i++)
     {
        if(
    $config['use_utf8_highlight'] == 1$s utf8_decode($words[$i]);
        else 
    $s $words[$i];
        
    $t $text;
        
    $c $color[$i];
        
    // $s case-insensitive in $t hervorheben: based on http://www.dclp-faq.de/q/q-regexp-ersetzen.html
        
    $text preg_replace("/((<[^>]*)|$s)/ie"'"\2"=="\1"? "\1":"<span style=\"background-color: #$c\">\1</span>"'$t);
      }
      return 
    $text;

    Nun mein Problem:
    Suche ich z.B nach dem Text /5 (man Beachte den Slash) verursache ich einen Modifie- Fehler im preg_replace().
    Code:
    Warning: preg_replace() [function.preg-replace]: Unknown modifier '5' in /var/www/apache2-default/function.php  on line 111
    Ich möchte den Slash nicht eleminieren sondern als Suchbegriff zulassen. Leider bekomme ich es nicht selber hin, daher meine Bitte um Hilfe.

    Danke

  • #2
    Slash escapen mit \/5. Allerdings sehe ich davon nichts. Hat vielleicht das Forum verschluckt.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hallo,

      um einen Suchbegriff (mit beliebigen Sonderzeichen) in einem Regex verwenden zu können, muss man ihn mit PHP: preg_quote - Manual escapen.

      Gruß,

      Amica
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        Danke
        Es war tatsächlich das Escapen, manchmal sehe ich den Wald vor lauter Bäumen nicht.

        Kommentar

        Lädt...
        X