wer kann mir mal richtig gut replace erklären?

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

  • wer kann mir mal richtig gut replace erklären?

    Hej,
    schon länger will ich mit Replace arbeiten, doch leider klappt es nie ! Habe mir jetzt viele Tutorials angeschaut, doch die replace funktion wird meist gerade mal am rande erwähnt, ohne das einem erklärt wird, wie sie richtig funktioniert! Drum bitte ich darum, das vielleicht einer so nett wäre und mir es erklären würde!
    Thx Smoky

  • #2
    Wenn du vielleicht noch sagst, um was für ein Replace es sich handeln soll... mir ist nicht ganz klar, was du wissen willst.

    Kommentar


    • #3
      also...

      ich komme nie mit diesen Sachen klar:

      str_replace
      substr_replace
      ereg_replace
      eregi_replace

      Ich bin dabei mein Newsscript etwas zuverbessern und will deshalb mit replace arbeiten, um bestimmten Zeichenketten durch andere auszutauschen:
      Bsp:
      ich schreibe ins forumular:
      [SMILY122] und ausgegeben wird dann beim Anzeigen der News nen Smily oder so was... ich will einfach einen UBB Code für mich erstellen... leider klappt das nie!

      drum bitte ich um hilfe von jemanden der das schon kann und einem PHP Newbie wie mir erklärt wie man es anwendet!!

      THX THX THX

      Kommentar


      • #4
        um das zu tun was du beschrieben hast benutzt du am besten str_replace().
        die ist folgendermaßen aufgebaut:

        string str_replace(needle,str,haystack);

        haystack ist der string in dem ersetzt werden soll.
        needle ist der string nach dem gesucht werden soll.
        str ist der string der needle ersetzt.

        die funktion gibt den fertig ersetzten string zurück.

        zum besseren verständnis nochmal ein Beispiel. angenommen du willst in dem String "meine url: <url>www.test.de<url>" den string "<url>" durch "<a>" ersetzen, dann sieht das folgendermaßen aus:

        echo str_replace('<url>','<a>','meine url: <url>www.test.de<url>');

        dies würde dann folgende ausgabe verursachen:

        meine url: <a>www.test.de<a>

        anstatt das ganze auszugeben kann man es natürlich auch speichern:

        $string = str_replace('<url>','<a>','meine url: <url>www.test.de<url>');

        dann enthält $string den fertig ersetzten string.

        Kommentar


        • #5
          und packt das ganze am Besten in eine Funktion und in ein Include-File, dann mußt du änderungen nicht immer an allen möglichen Dateien durchführen.

          file "ersetzen.inc"

          function ersetze($eingabe) {
          $neuer_string = str_replace("[SMILY122]","<img src...",$eingabe);
          return $neuer_string
          }


          file xy:

          include "ersetzen.inc";

          ...
          ...
          $neuer_wert=ersetze($usereingabestring);


          für kompliziertere Dinge brauchst du allerdings eher ereg_replace. Während str_replace eine einfache Methode ist, kannst du damit nach Mustern etc suchen und eben auch ersetzen.

          Viel Spaß beim Testen...

          Kommentar


          • #6
            beim testen der funktionen "strtr" und str_replace" kam ich zu folgenden seltsamen ergebnissen:

            "none" soll durch "underline" ersetzt werden:
            PHP-Code:
            $line =  "a:link {color:#5957CE;text-decoration:none;}";
            $deco_alt "none";
            $deco_neu "underline";

            $line strtr($line[1],$deco_alt,$deco_neu); 

            //ergebniss:

            a:link {culur:#5957CE;text-dec[B]u[/B] rati[B]u[/B] n:n[B]u[/B] ne;}
            // alle 'o' werden durch 'u' ersetzt

            $line str_replace($line[1],$deco_alt,$deco_neu);

            //ergebniss:

            underlinea:visited {color:#5957CE;text-decoratio[b]underline[/b]:[b]underline[/b]o[b]underline[/b]e;}
            // zeilenanfang und 'n' werden durch 'underline' ersetzt 
            hat hier mein browser verrückt gespielt?
            nach einem neustart des browsers komme ich mit "str_replace" zum gewünschten ergebniss:
            PHP-Code:
            a:link {color:#5957CE;text-decoration:underline;} 
            eines meiner bücher sagt zu "str_replace":
            Das Vorkommen eines Zeichens in einer Zeichenkette suchen und mit einem neuen String ersetzen.
            was ist denn nun richtig?
            ersetzt "str_replace" ein einzelnes zeichen oder einen aus mehreren zeichen bestehenden string durch den neuen string?

            Kommentar


            • #7
              manual:
              str_replace -- Ersetzt alle Vorkommen eines Strings in einem anderen String
              nix von wegen einzelnes zeichen oder so

              strtr hingegen tauscht einzelne zeichen aus
              string strtr ( string str, string from, string to)

              Diese Funktion bearbeitet str, in dem alle Vorkommen von Zeichen aus from in die entsprechenden Zeichen aus to umgesetzt werden. Zurück gegeben wird der bearbeitete String.

              Sind from und to von unterschiedlicher Länge werden die überzähligen Zeichen ignoriert.
              klarer?
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                hat hier mein browser verrückt gespielt?
                nach einem neustart des browsers komme ich mit "str_replace" zum gewünschten ergebniss:
                wahrscheinlich cachte dein browser die seiten ...
                und erst als du ihn dich gemacht hast, hat er bei der naechsten anfrage die seite neu geladen ...

                das cachen von internetseiten kann man eigentlich in jedem browser ausstellen und ist vor allem wenn man entwickelt sehr empfehlenswert es auch so zu macehn ....

                greetz
                iglo

                Kommentar


                • #9
                  danke für schnelle info!

                  also ist "str_replace" die funktion der wahl, um im string
                  "vermutlich bin ich morgen reich" das wort "reich" durch den string
                  "eine arme sau" zu ersetzen.

                  danke!

                  Kommentar


                  • #10
                    könnte mir einer der mod's mein letztes posting bitte mit einem einfachen "ja" oder "nein" beantworten?

                    den büchern kann man ja offenbar nicht trauen...

                    Kommentar


                    • #11
                      bin zwar kein mod, aber: ja
                      PHP-Code:
                      echo str_replace('reich','eine arme Sau','Vermutlich bin ich morgen reich'); 
                      probier das doch einfach mal aus
                      sind die von mir geposteten links so unverständlich?
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        jepp ...

                        auch wenn ich kein mod bin ....


                        aber :
                        probiers doch auch einfach mal eben selbst aus ...
                        ist ne sache von 5 minuten ...

                        str_replace :
                        str_replace(needle, str, haystack);

                        ersetzt aööe vorkommen von needle in haystack mit str.

                        die funktion ist SIGNIFIKANT , also um einiges, schneller als ereg_replace

                        greeetz
                        iglo

                        mist happy war schneller

                        Kommentar


                        • #13
                          @ mrhappiness, @kapitaeniglo,

                          danke für das "ja"!

                          btw:
                          ich mache nun seit 8 stunden nichts anderes als diese funktion und ähnliche zu testen. (siehe weiter oben)

                          Kommentar

                          Lädt...
                          X