problem: str_replace in for-schleife

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

  • problem: str_replace in for-schleife

    PHP-Code:
    for($i=0;$i<2;$i++)
    {
        
    $text1 "[F]fett[/F] duenn";
        
    $array_1 = array("[F]","[/F]");
        
    $array_2 = array("<b>","</b>");
        for(
    $x=0;$x<sizeof($array_1);$x++)
        {  
            
    $text str_replace($array_1[$x],$array_2[$x],$text1);
        }
        echo 
    $text;

    ok vielleicht bin ich ja nur zu dumm und schau die ganze zeit über den ganz offensichtlichen fehler in diesem script, aber bei mir ersetzt er immer nur die zweite bzw die letzte stelle (wenn mehr als 2 einträge vorhanden sind) des arrays.

    ich möchte diesen bb-code in einem gästebuch verwenden, deswegen die for-schleife aussenrum.

    weiss wer eine lösung für mich?
    gruss david_b

  • #2
    preg_replace ist da viel besser.


    P.S.: schonmal drüber nachgedacht anstatt F ein B für Bold zu benutzen? Das machen die meisten BB-Codes so
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      dass mit F anstatt B hat den grund, dass es sonst hier in diesem forum falsch angezeigt wird, weil ja B auch von diesem forum für fett verwendet wird.

      ich werd mir mal preg_replace zu gemüte führen.

      gruss david

      Kommentar


      • #4
        Das kann so nicht gehen, da du den ersetzten Text immer in eine neue Variable speicherst.
        So sollte es funktionieren:
        PHP-Code:
        for($i=0;$i<2;$i++)
        {
            
        $text1 "[F]fett[/F] duenn";
            
        $array_1 = array("[F]","[/F]");
            
        $array_2 = array("<b>","</b>");
            for(
        $x=0;$x<sizeof($array_1);$x++)
            {  
                
        $text1 str_replace($array_1[$x],$array_2[$x],$text1);
            }
            echo 
        $text1;

        Gruß
        Stephan
        Zuletzt geändert von sgt; 24.08.2005, 19:23.
        [font=Verdana]SteGaSoft
        Theorie ist, wenn jeder weiß, wie es geht, aber nichts funktioniert, Praxis ist, wenn alles funktioniert und niemand weiß warum.
        [/font]

        Kommentar

        Lädt...
        X