Encoder: suche etwas zwischen include und eval

Hallo Forum

Mein erster Beitrag, erst mal servus an alle!
Mein Problem: Bisher binde ich in meiner Webseite diverse Einzeldatei mit include() ein.
Diese Dateien sind normale php-Files mit Code und HTML.

Das gleiche hätte ich jetzt gerne mit einem String statt einer Datei. Und zwar so, dass der String auch Inhalte haben kann wie
<body>
<?php print "irgendwas"; ?>
</body>

Ich finde bei meiner Suche nur eval, allerdings geht das nicht mit HTML. Ich bräuchte wirklich etwas das genau das selbe tut wie include, nur das sich den Inhalt nicht aus einer Datei holt, sondern aus einer Variable.

Den Umweg Datei schreiben -> include -> Datei löschen möchte ich wenn möglich nicht machen, da mir das zu unsauber vorkommt.
Wär cool wenn da jemand was wüsste.
Grüße

  1. Hallo,

    Ich finde bei meiner Suche nur eval, allerdings geht das nicht mit HTML. Ich bräuchte wirklich etwas das genau das selbe tut wie include, nur das sich den Inhalt nicht aus einer Datei holt, sondern aus einer Variable.

    Wie wärs mit require($someThing);?

    Viele Grüße,
    Jörg

    1. Include kann das auch, sehe ich gerade:

      include $someVar;

      müsste genauso gehen:
      http://de3.php.net/manual/de/function.include.php

      1. Da heißt es auch "bindet die angegebene Datei ein", bei beidem.
        Der Befehl weiß ja auch nicht ob er den String direkt includen soll, statt dem Dateiinhalt.

        1. Hallo,

          Da heißt es auch "bindet die angegebene Datei ein", bei beidem.
          Der Befehl weiß ja auch nicht ob er den String direkt includen soll, statt dem Dateiinhalt.

          Sorry, ich seh grad ich hab Dein Problem komplett und gründlich falsch verstanden :(
          Ist wohl irgendwie heut nicht mein Tag heute *g*.

          1. Sorry, ich seh grad ich hab Dein Problem komplett und gründlich falsch verstanden :(

            Immerhin warst du gründlich :-)
            Trotzdem nett dass du was dazu gesagt hast!
            viele Grüße

  2. Hi,

    Ich finde bei meiner Suche nur eval, allerdings geht das nicht mit HTML.

    Dann mach halt PHP draus ...
    eval erwartet gueltigen PHP-Code. Aber den PHP-Parser-Modus kann man ja bekanntlich auch verlassen.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Mir war das noch nicht bekannt. Wo muss ich suchen?

      1. Hi,

        Ich finde bei meiner Suche nur eval, allerdings geht das nicht mit HTML.

        Dann mach halt PHP draus ...
        eval erwartet gueltigen PHP-Code. Aber den PHP-Parser-Modus kann man ja bekanntlich auch verlassen.

        Mir war das noch nicht bekannt. Wo muss ich suchen?

        Zum Beispiel in dem Code, den du schon gepostet hattest - am Ende dieser Zeile:

        <?php print "irgendwas"; ?>

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
        1. Wie coooool!

          eval ("?>" . $meinePhpDateiAlsString);

          Simpel, aber genial. Auf sowas wär ich jetzt nicht gekommen.
          Herzlichen Dank!

          1. echo $begrüßung;

            eval ("?>" . $meinePhpDateiAlsString);
            Simpel, aber genial. Auf sowas wär ich jetzt nicht gekommen.

            Warum auch immer du Code in einer Variable stehen hast, genialer wäre es, so etwas nicht zu tun. Es gibt sicher eine bessere Lösung für deine Aufgabenstellung als derart mit Code zu hantieren und mit eval() arbeiten zu müssen.

            echo "$verabschiedung $name";

            1. Dann führe ich das doch mal näher aus, vielleicht fällt ja jemandem was schöneres ein.

              Zuerst waren ganz normale php-Dateien, die je nach gewünschter Unterseite in eine index.php included wurden. Das heißt Style und Menü steht alles in einer Datei, die dann je nach Parameter andere Unterseiten einbindet.

              In den Unterseiten steht jetzt am Anfang noch eine Zusatzinformation, die ich in der Indexdatei an einer anderen Stelle brauche.
              include() fällt dann für die Ausgabe des Rests weg, weil ja der Anfang nicht mehr berücksichtigt werden soll. Daher die Idee...
              Da wird also nicht Code unkontrolliert dynamisch zusammengestückelt, falls du das meinst.

              1. echo $begrüßung;

                In den Unterseiten steht jetzt am Anfang noch eine Zusatzinformation, die ich in der Indexdatei an einer anderen Stelle brauche. include() fällt dann für die Ausgabe des Rests weg, weil ja der Anfang nicht mehr berücksichtigt werden soll. Daher die Idee...

                Das verstehe ich nicht so ganz. Aber vielleicht ist in deinem Fall das einfachste Vorgehen, wenn du in der Include-Datei statt direkt etwas auszugeben zwei Variablen erstellst, die das auszugebende enthalten und deren Inhalt in der inkludierenden Datei an den geeigneten Stellen mit echo ausgibst. Hilfreich dafür kann die Heredoc-Syntax sein, um umfangreiche Texte (besonders mit " und ' drin) komfortabler zu notieren.

                Da wird also nicht Code unkontrolliert dynamisch zusammengestückelt, falls du das meinst.

                Das hatte ich in der Tat befürchtet.

                echo "$verabschiedung $name";