Roger: ereg_replace

moin!

mit ereg_replace("lala", $foo, $string) ersetzte ich alle lala's mit $foo in $string.
jetzt möchte ich aber alle lala und lolo mit $foo ersetzen.
wie mache ich das?
ereg_replace("lala|lolo", $foo, $string)?

gruß.
roger.

--
ich widersprech mir immer selber.
aber das passiert mir gott sei dank nie.
  1. Moin Roger!
    nutze besser die preg_* funktonen, in deinem fall preg_replace(), da diese schneller sind als die ereg_* funktionen.
    dann lies dir das mal durch.
    in deinem falle sähe dein code so aus:

      
    <?php  
    $pattern = "/(lala|lolo)/";  
    $return = preg_replace($pattern,$foo,$string);  
    echo $return;  
    ?>  
    
    

    hoffe ich konnte helfen.
    tschüssi
    ichen

    1. Hallo,

      nutze besser die preg_* funktonen, in deinem fall preg_replace(), da diese schneller sind als die ereg_* funktionen.

      lustig ist, dass preg_replace sogar schneller als str_replace läuft.
      kennt jemand die Ursache hierfür?

      Gruß,
      Benne

      1. Hallo Benne.

        lustig ist, dass preg_replace sogar schneller als str_replace läuft.

        Das bezweifle ich.

        kennt jemand die Ursache hierfür?

        Wie sieht dein Versuchsaufbau aus?

        Einen schönen Samstag noch.

        Gruß, Ashura

        --
        Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
        30 Days to becoming an Opera8 Lover -- Day 21: Toolbars
        Meine Browser: Opera 8.01 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
        [Deshalb frei! - Argumente pro freie Software]
        1. Hallo.

          Wie sieht dein Versuchsaufbau aus?

          Ich kann hier zumindest schon einmal meinen präsentieren.
          (Das ursprüngliche Skript stammt von Marc Reichelt.)

          <?php  
            
          // Performance-Test  
            
          header("Content-type: text/plain");  
          echo "Starte Geschwindigkeitstest...\n";  
            
          $string = "Hello Welt";  
            
          $times = 1000000;  
            
            
          // erster Durchlauf  
            
          $begintime = explode(" ", microtime());  
          $begintime = (float)$begintime[0] + (float)$begintime[1];  
            
          for($i=0; $i<$times; $i++)  
          {  
            str_replace("Hello","Hallo",$string);  
          }  
            
          $endtime = explode(" ", microtime());  
          $endtime = (float)$endtime[0] + (float)$endtime[1];  
            
          $firsttime = $endtime - $begintime;  
            
            
          // zweiter Durchlauf  
            
          $begintime = explode(" ", microtime());  
          $begintime = (float)$begintime[0] + (float)$begintime[1];  
            
          for($i=0; $i<$times; $i++)  
          {  
            preg_replace("/Hello/","Hallo",$string);  
            
          }  
            
          $endtime = explode(" ", microtime());  
          $endtime = (float)$endtime[0] + (float)$endtime[1];  
            
          $secondtime = $endtime - $begintime;  
            
            
            
          // Ausgabe  
            
          echo "Erster Durchlauf (str_replace)  :  $firsttime Sekunden\n";  
          echo "Zweiter Durchlauf (preg_replace): $secondtime Sekunden\n";  
          echo "Prozentual (1/2):  ". $firsttime/$secondtime ."\n";  
            
          ?>
          

          Ich habe mehrere Test durchlaufen lassen und das Ergebnis spricht eindeutig für den enormen Geschwindigkeitsvorteil von str_replace gegenüber preg_replace. (Ersteres ist ca. doppelt so schnell wie Zweiteres.)

          Einen schönen Samstag noch.

          Gruß, Ashura

          --
          Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
          30 Days to becoming an Opera8 Lover -- Day 21: Toolbars
          Meine Browser: Opera 8.01 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
          [Deshalb frei! - Argumente pro freie Software]
          1. Moin Ashura!
            bemerkenswert. Das sagt auch das Manual:
            [cite]
            Falls Sie keine ausgefallenen String-Ersetzungen brauchen, sollten Sie immer dieser Funktion [str_replace] den Vorzug vor ereg_replace() oder preg_replace() geben.
            [cite]
            Aber dafür unterstützt str_replace keine regex, oder?
            tschüssi
            ichen

            1. Hallo ichen.

              bemerkenswert. Das sagt auch das Manual:
              [cite]
              Falls Sie keine ausgefallenen String-Ersetzungen brauchen, sollten Sie immer dieser Funktion [str_replace] den Vorzug vor ereg_replace() oder preg_replace() geben.
              [cite]

              Ja. Aber manche glauben nur nackten Zahlen. ;-)

              Aber dafür unterstützt str_replace keine regex, oder?

              Nein, das ist ja der Witz an der Sache. Da str_replace einfach nur den ihr übergebenen String abgrast und stupide alles ersetzt, was ihm befohlen wurde, hat diese Funktion den Geschwindigkeitsvorteil.

              Komplexere Such(-und Ersetzungs-)muster bedürfen nun einmal auch komplexerer Algorhythmen (preg_*).

              Einen schönen Samstag noch.

              Gruß, Ashura

              --
              Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
              30 Days to becoming an Opera8 Lover -- Day 21: Toolbars
              Meine Browser: Opera 8.01 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
              [Deshalb frei! - Argumente pro freie Software]
    2. moin!

      <?php
      $pattern = "/(lala|lolo)/";
      $return = preg_replace($pattern,$foo,$string);
      echo $return;
      ?>

      
      > hoffe ich konnte helfen.  
        
      sieht gut aus. danke!  
        
      gruß.  
      roger.
      
      -- 
      ich widersprech mir immer selber.  
      aber das passiert mir gott sei dank nie.