Replaces in Templates - was ist ideal?

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

  • #16
    jepp
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #17
      kewl!

      haut ein eval() in einem eval() auch hin? Wüsste zwar nicht, wann das vorkommen sollte, aber würde mich mal interessieren.

      BTW: Ich hab vor langer Zeit, als ich mal mit PHP angefangen hab, gehört, dass eval() nicht so beliebt ist. Aber das sieht neuerdings ganz anders aus. Es gibt ja auch keine wirkliche Alternative. Weiß jemand, warum das so unbeliebt war? (ich glaube da stand sogar mal was im Manual drüber drin.)

      Kommentar


      • #18
        1. Probiers doch aus: eval ('print(1);eval("print(2);");print(3);');

        2. Vermutlich aus Sicherheitsgründen.
        Wenn du User-Eingaben unbearbeitet durchschickst ... Ich mag gar nicht dran denken;
        und an der Gefahr hat sich bis heute nichts geändert.

        Aber mittlerweile sollte sich wohl addslashes einigermaßen durchgesetzt haben.
        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


        • #19
          @Titus:
          zu 1) Ich weiß, hätte ich mal machen sollen, predige ich bei anderen ja auch. Die Frage kam mir so spontan.

          zu 2) Wenn das der einzige Grund war, kann ich es ja eigentlich ganz beruhigt verwenden. Die Peformance sollte auch kein Problem dar stellen, denke ich.

          Bedanke mich erstmal.

          Kommentar


          • #20
            @tobiaz: du hast doch die klasse von mir bekommen, teste es doch einfach mal ?!

            gruss

            Kommentar


            • #21
              Hab zwei Probleme:

              1) Super Mega Stress in der Schule: nächste Woche fängt Klausur-Phase an und es gibt Hausaufgaben ohne Ende.

              2) Ich habs in der verbleibenden Zeit einfach nicht gepeilt. Habs natürlich schon ein bisschen verstanden, was da abgeht, aber der Zusammenhang fehlt mir volle Pulle.

              Kommentar


              • #22
                mh... ich dachte, ich hätte es ziemlich einfach gemacht ??!!

                naja, doku steht ja immer noch aus

                gruss

                Kommentar


                • #23
                  @ MoRtAlAn

                  Ich würde mich auch für deine Template-Klasse interessieren.

                  Meine kannst auf meiner HP downloaden. Oder hier der Link: Downloadlink
                  mfg Flashfactor

                  Gebildet ist, wer weiß, wo er findet, was er nicht weiß.

                  Kommentar


                  • #24
                    Ich versteh das alles nicht so ganz. Warum überhaupt eval. Warum nicht einfach per echo oder print ausspucken was schon zusammengebastelt wurde. Ich kann ja mal sagen wie ich das gemacht hab:

                    Ich hab eine main.php die alle include befehle die per get oder post anweisung übermittelt werden in einer switch() erinteil. bsp: main.php?thread=gbook oder so. Nach dieser Thread angabe sucht sich die main alle erforderlichen dateien zusammen und arbeitet sie ab. in den includeten phpfiles werden auch html-templates eingeladen. die platzhalter alla {text} werden dann mit str_replace oder preg_replace (Schön wenn man array abarbeiten will bzw RA) durch den dafür erforderlichen html konformen inhalt ersetzt. das landet dann alles in einer var und wird am ende per echo ausgegeben. warum muss man den umbedingt php code für die platzhalte benutzen?
                    meine site ist: com.unig.de


                    gruss nik

                    Kommentar


                    • #25
                      zu 1) eval() weil da noch php-Code enthalten ist, der geparst werden muss. Ansonsten hättest du in deiner Seite den puren php-code stehen.

                      zu 2) Versteh das nicht ganz. Ist zu kompliziert für nen kranken menschen...

                      Kommentar


                      • #26
                        Ich steh vor der Frage eval oder str_replace, das mit dem replace wird mir zu viel, und ich würd lieber eval nutzen, allerdings habe ich beim Suchen grad nen Post vom tobiaz gefunden

                        http://www.php-resource.de/forum/sho...e&pagenumber=2

                        ein ordentliches TPL-system kommt übrigens ohne eval aus, denke ich.

                        warum hast du den zwei arten von platzhaltern?
                        was is denn nu besser? ich hab viele platzhalter, und ich könnte vorstellen, dass eval da besser ist?

                        Kommentar


                        • #27
                          eval sollte man nur für Interpretation von PHP Code sprich Schleifen usw. als auch für ein compiliertes Template verwendet werden bei dem es sich um statische Inhalte handelt...................

                          Also für reine Blöcke die mehrmals vorkommen können braucht man kein eval(); was ich nach einer Überarbeitung meines ersten Templates gerade feststellen muss
                          [color=blue]MfG Payne_of_Death[/color]

                          [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                          [color=red]Merke:[/color]
                          [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                          Murphy`s Importanst LAWS
                          Jede Lösung bringt nur neue Probleme
                          Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                          In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                          Kommentar


                          • #28
                            Original geschrieben von Payne_of_Death
                            Also für reine Blöcke die mehrmals vorkommen können braucht man kein eval();
                            sondern?

                            ich habe sowohl Blöcke, die sich immer wiederholen, als auch seitenabhängigen Content. Wenn ich das ganze Template einmal durch eval jage, erspart mir das ne Menge Zeilen Code

                            Kommentar


                            • #29
                              hab den thread nicht mehr durchgelesen. aber meine templateklasse (unendlich viele Blöcke) kommt ohne eval aus...

                              mehr dazu steht aber auch im forum

                              Kommentar


                              • #30
                                Original geschrieben von MehrMeerHer
                                sondern?

                                ich habe sowohl Blöcke, die sich immer wiederholen, als auch seitenabhängigen Content. Wenn ich das ganze Template einmal durch eval jage, erspart mir das ne Menge Zeilen Code
                                hmm hab das so gelöst

                                Übergebener Block suchen im Text......
                                Gefunden? Jop Inhalt holen und entsprechend die Template Vars ersetzen.......

                                Block nochmals aufgerufen? Aha jemand will ihn nochmals......
                                Schnapp nochmals raussuchen und den ersetzen Text wieder in einem Array anhängen......

                                Dann hab ich $this->block[$file_name]['blockx'] und da sind alle gleiche Blöcke aneinandergekettet........

                                Beim Parsen habe ich eine Einfügemarke wo ich genau das Array bzw. diesen Block damit ersetze.....

                                Wenn ich es gleich ersetzen würde im Template würde ich meine Einfügemarke verlieren, was auch mein erstes Problem war mit meinem ersten Just 4 Fun Template ohne sich jemals mit Templates beschäftigt zu haben, sprichwörtlich drübergestolpert......
                                Zuletzt geändert von Payne_of_Death; 05.01.2005, 00:39.
                                [color=blue]MfG Payne_of_Death[/color]

                                [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                                [color=red]Merke:[/color]
                                [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                                Murphy`s Importanst LAWS
                                Jede Lösung bringt nur neue Probleme
                                Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                                In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                                Kommentar

                                Lädt...
                                X