php-Variable in String mitgeben...



  • Warum löst du es nicht mit einer "zwischenvariable"?

    # SEITE 1
    $mein_string = 'das ist mein String mit einer $variable';

    {übergebe sring auf SEITE 2}

    # SEITE 2
    mein_string=str_replace(mein\_string = str\_replace( 'variable', "Die Variable", $mein_string );



  • Neku schrieb:

    Also eval() verwende ich sehr gerne für Templates. Das dürfte in PHP dutzende Male schneller sein, als manuell einen String komplett nach Variablen abzusuchen und diese in einer Schleife zu ersetzen.

    Wozu? Da kannst du das Script gleich direkt ausführen (falls nicht, hast du irgendetwas in deiner Softwarestruktur fürchterlich falsch gemacht 😉 )!



  • @Reyx:
    Dein Code ist an sich in Ordnung und Schnell. Wenn man dies, aus irgendwelchen Gründen so nicht lösen will, würde sich die Idee mit dem "String-Ersetzen" anbieten.



  • JayJay schrieb:

    Dein Code

    Welcher mein Code? Du meinst wohl den von Neku 😉



  • Mein ich ja 😮



  • Reyx schrieb:

    Neku schrieb:

    Also eval() verwende ich sehr gerne für Templates. Das dürfte in PHP dutzende Male schneller sein, als manuell einen String komplett nach Variablen abzusuchen und diese in einer Schleife zu ersetzen.

    Wozu? Da kannst du das Script gleich direkt ausführen (falls nicht, hast du irgendetwas in deiner Softwarestruktur fürchterlich falsch gemacht 😉 )!

    Script? Ich rede von Templates 😛

    HTML-Dateien, in der an beliebiger Stelle beliebige PHP-Variablen vorkommen können. Zusätzlich gibt es <if>, <elseif>, <else>, <return> etc.



  • neku 😮

    eval() ist evil!
    da ist es echt wurscht ob du das für templates benutzt oder für was ganz anderes...



  • eval benötigt Millisekunden. Solange ich keine bessere Möglichkeit finde, PHP-Variablen in einem String ersetzen zu lassen, werde ich das auch weiterhin verwenden. Wenn PHP hier eine Funktion anbieten würde wäre schön.
    Ich könnte es höchstens so umschreiben, dass ich include() statt eval() verwende 😛 Aber häufige includes dürften noch schwerer sein.

    Bei mir werden die Templates sozusagen vorkompiliert. <if>, <elseif>, <else>, <return> und Variablen werden in PHP-Code umgewandelt und das ganze zusammen mit einer Menge Strings gespeichert. Wird die Template verwendet, wird der Code per eval() ausgeführt. Bei include() würde jedes mal die Template-Datei neu geladen, was in Schleifen nicht wünschenswert ist. Das Parsen zur Laufzeit ist auch nicht das Wahre.



  • Leute! Streitet euch doch nicht um Eval oder nicht.
    Ich sehe jedenfalls das Problem des Fragestellers nicht.
    Wenn in einer PHPSEITE eine phpvariable drin ist dann ist der INhalt der Variable eben da drin und PHP interpretiert es eben so.
    Will man diesen INHALT an eine andere Seite weitergeben dann über die URL oder mit Session.
    Die Variable kann man nicht weitergeben den die Variable ist ja der Inhalt in dieser.



  • ... danke Leute, die Ansätze find ich super!

    Nur um der allgemeinen Verwirrung bez. Sinnhaftigkeit nachzukommen: Ursprünglich war aller Code auf einer Seite und die ist echt groß, jetzt hab ich aber einen HTML Teil auf eine Anderre Seite ausgelagert welchen ich dann mit include einbinde wenn ich ihn brauche. Dieser HTML code ist eben ein Template und von denen gibt es mehrere. Um jetzt nicht all zuviel ändern zu müssen lasse ich die datenbanksachen auf der ursprünglichen Seite während die forms auf der neuen Seite sind. Da jedes Template aber anders aussieht(eh klar..) hat natürlich das insert und update statement auf der ursprünglichen Seite ein Problem. Meine Lösung war nun das ich auch den SQL string den ich brauche auch gleich in den Templates zusammensetze und den dann eben per session auf die seite übergebe wo die datenbanksachen ausgeführt werden. that´s it! 🙂

    MAg wohl ein bißchen ungewähnlich sein aber wie schon gesagt, hab keine Zeit und Lust so viel zu ändern 😋

    danke nochmal
    lg



  • Smarty ist ein Templatesystem. Trennung HTML und Code.
    Dein Ansatz selbst ist aber auch nicht so besondern. Dafür gibt es Klassen und Funktionen.



  • .. wie gesagt die umrüstung kostet zuviel zeit!

    danke trotzdem
    lg


Anmelden zum Antworten