mehrere Wörter gleichzeitig aus einem String entfernen

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

  • mehrere Wörter gleichzeitig aus einem String entfernen

    Hallo,

    ich muss einem String mehrere Ausdrücke entfernen. Also zb.

    $sring = "Ich will Wörter entfernen und zwar alle auf einmal."

    hieraus soll nun "zwar" , "will" und "auf " entfernt werden.
    Ich könnte 3 mal

    ereg_replace ("zwar", "", $string);
    ereg_replace ("will", "", $string);
    ereg_replace ("auf", "", $string);


    machen. Bei langen Texten mit vielen zu erstetzenden Wörtern wird dabei aber etliche male der Text durchlaufen und das ist nicht gerade performancefördern.

    Gribts ne Funktion an welche ich "zwar, will, auf" übergeben und diese Wörter dann bei einem Durchlauf entfernt?

    Danke und Gruss

    Thommy
    www.unister.de

    what students want!

  • #2
    $string = preg_replace("/(zwar|will|auf)/i","",$string);
    Immer erst mal gucken, ob Benzin im Tank ist ...

    Kommentar


    • #3
      <?php
      $string = "Ich will Wörter entfernen und zwar alle auf einmal." ;
      $noise_word = array("zwar", "will", "auch");
      for($a=0;$a < count($noise_word);$a++)
      $string = ereg_replace ("$noise_word[$a]", "", $string);
      ?>

      Kommentar


      • #4
        @Gustl
        Wozu die Schleife?
        preg_replace() ist doch ohne Schleife in der Lage, mehrere Teile zu ersetzten.
        Einmal preg_replace() oder dreimal? Was ist performanceschondender?
        Immer erst mal gucken, ob Benzin im Tank ist ...

        Kommentar


        • #5
          Man will ja nur zeigen, dass man primitive Wege benutzen könnte, wenn man preg_replace nicht einmal einfällt.

          Ansonsten ist ja dein Lösungsweg eleganter.

          Kommentar


          • #6
            $string = "Ich will Wörter entfernen und zwar alle auf einmal." ;
            $noise_word = array("zwar", "will", "auch");
            $string = ereg_replace ("$noise_word[$a]", "", $string);

            $word = array();
            foreach ($noise_word as $noise) $word[] = preg_quote($noise);
            $string = '/'.preg_replace($word, '', $string).'/i';

            Aus dem PHP-Handbuch zu preg_replace:
            Every parameter to preg_replace() can be an array.

            If subject is an array, then the search and replace is performed on every entry of subject, and the return value is an array as well.

            If pattern and replacement are arrays, then preg_replace() takes a value from each array and uses them to do search and replace on subject. If replacement has fewer values than pattern, then empty string is used for the rest of replacement values. If pattern is an array and replacement is a string, then this replacement string is used for every value of pattern. The converse would not make sense, though.
            Zuletzt geändert von Titus; 02.06.2002, 06:45.
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar

            Lädt...
            X