ultra einfaches Beispiel für "str_replace"?

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

  • ultra einfaches Beispiel für "str_replace"?

    hi

    habe mich in letzter Zeit etwas mit Template Engines mit php angeschaut.
    Nun weis ich das ich die Marker aus einem Template z.B. {demo} mit dem Befehl str_replace ersetzen muss. Nur leider keine Ahnung, wie das funktioniert.

    Habe im Internet schon nach Beispielen gesucht aber so ganz deutlich wurde mir die Bedeutung / Nutzung nicht
    (sry habe auch auf den ersten Blick nicht wirklich hier im Forum was gefunden: xD so mehr als 300 Themen, aber nicht wirklich das was ich will), weil es einfach ein Denkfehler von mir ist und eigentlich so einfach?^^

    Vielleicht kann mir jemand bitte ein ganz kleines Beispiel schreiben?


    Danke im voraus.


    fg
    Powermax90

  • #2
    unter http://de.php.net/str_replace solltest du genug beispiele finden
    it's not a bug,
    it's a feature!

    Kommentar


    • #3
      einer meiner Freunde gab mir bereits diesen Link.

      Aber aus diesen Beispielen in Fachsprache werde ich nicht wirklich schlau.
      Also ich sehe ja diese Beispiele aber die Erklärung fehlt mir. Habe mir auch mal ein Beispiel rauskopiert und einfügt und nix passiert. Wie ich sagte habe keine Ahnugn wie ich mit str_replace umgehen soll oder was da noch dazugehört

      bzw. wie wird denn z.b. ein Marker {demo} gesucht und ersetzt? danke für antworten

      ...

      Zuletzt geändert von powermax90; 16.10.2008, 00:50.

      Kommentar


      • #4
        Dann fehlen dir vermutlich die Grundlagen. Noch simpler als in den Beispielen des Manuals gehts eigentlich kaum, aber ich versuchs mal:
        PHP-Code:
        $str 'Ich bin dreiundzwanzig Jahre alt'// stimmt nicht, ich bin nämlich erst 22

        // Parameter 1: Welche Zeichenkette soll gesucht werden
        // Parameter 2: Wodurch wird/werden die gefundene(n) Zeichenkette(n) ersetzt
        $str str_replace('dreiundzwanzig''zweiundzwanzig'$str);

        echo 
        $str// -> Ich bin zweiundzwanzig Jahre alt 
        Das ist jetzt eins der simpleren Beispiele für die Funktion. str_replace akzeptiert als Parameter auch Arrays, aber das führt jetzt vielleicht etwas zu weit.

        Grüße
        Nieder mit der Camel Case-Konvention

        Kommentar


        • #5
          ok das ich sehr gut erklärt. Danke =)

          Aber jetzt hab ich noch folgendes Problem, wie ich das jetzt mit den Markern in meiner Template Engine hinbekomme. In dieser besagten tpl datei sind nur Marker angegeben {marker} und durch includen des jeweiligen php codes mit str_replace soll der Marker "{marker}" mit der Replace ausgabe "ausgetauscht" werden. Aber ich frage mich nun, wie soll das gehen ohne ein echo bzw. print...?

          Kommentar


          • #6
            Das hat erstmal alles nichts mit echo oder print zu tun.
            Du suchst deinen Platzhalter {marker} und möchtest ihn durch einen bestimmten Wert ersetzen. Wie str_replace funktioniert, habe ich dir erklärt. Wo ist jetzt das Problem, aus "dreiundzwanzig" aus meinem Beispiel "{marker}" aus deiner Problemstellung zu machen?

            Also: Gegeben sei ein Array mit den Namen der Platzhalter als Schlüssel und ihnen zugeordnet die Werte.
            In einer Schleife gehst du das Array durch, pickst dir den jeweiligen Schlüssel des aktuellen Durchlaufs raus, packst die geschweiften Klammern drum (Stichwort String-Konkanetation bzw. -Verkettung) und wendest str_replace an, wie du es eben gelernt hast. Fertig.
            Nieder mit der Camel Case-Konvention

            Kommentar


            • #7
              Also das mit dem einfach dreiundzwanzig zu {marker} ist ja einfach, aber wenn ich des jetzt auf meine entsprechende Situation übetrage, weis ich nicht, was genau ich tun muss, nähmlich wenn der Marker {marker} erst nach dem str_replace Befehl kommt und nicht als php variable steht :


              <html>
              <head>
              </head>

              <body>

              <div id="any">{marker}</div>

              </body>

              </html>


              Wenn du das mit der Schleife meinst, könntest du da bitte genauer darauf eingehen?
              Zuletzt geändert von powermax90; 16.10.2008, 02:13.

              Kommentar


              • #8
                und durch includen des jeweiligen php codes
                nähmlich wenn der Marker {marker} erst nach dem str_replace Befehl kommt und nicht als php variable steht :
                Wenn ich das richtig lese, liest du deine Template-Datei per "include" ein? Dann geht es mit "str_replace" natürlich nicht. Willst du mit "str_replace" arbeiten, musst du deine Template-Datei in eine Variable einlesen . Mit dieser kannst du dann weiter arbeiten.

                Aber - nicht persönlich nehmen - mit deinem vorhandenen Wissen eine Template-Engine schreiben zu wollen, halte ich doch für ein klein wenig zu vermessen. Fange lieber mit etwas Kleinerem an - das schont die Nerven...
                Simploo CMS - das einfache Webseiten-Bearbeitungsprogramm

                Kommentar


                • #9
                  Max, hab dir nie gesagt, dass du dein Template mit include() aufrufen sollst

                  Schau dir mal file_get_contents() an.

                  lg
                  Fab

                  Kommentar


                  • #10
                    Und um's dir noch einfacher zu machen:

                    -- EDIT: Da es verständnissprobs gab, jetzt noch mit Erklärung

                    PHP-Code:
                    // Den Inhalt von deintemplate.html in $template schreiben
                    $template file_get_contents("deintemplate.html");
                    // Den Text (du nennst es Marker) "{marker}" aus "$template" mit dem Inhalt der Variable "$variable" ersetzen.
                    $template str_replace("{marker}"$variable$template
                    Und das nächste mal: -->

                    lg
                    Zuletzt geändert von ; 16.10.2008, 20:36.

                    Kommentar


                    • #11
                      OffTopic:
                      Ihr zwei gehört zusammen?

                      Kommentar


                      • #12
                        OffTopic:
                        Wie darf ich das verstehen?

                        Kommentar


                        • #13
                          ja genau?? ^^

                          Kommentar

                          Lädt...
                          X