Manuel B.: "Rückgabe" von include()

Hi,
ich steh grad vor einem Problem, wovon ich ausgehe, ich bin nur blind und verwende falsche Suchwörter.

Ich will die Ausgabe einer PHP-Datei in einen String schreiben.
Jetzt geh ich momentan den Umweg über eine URL und file_get_contents()
Die Ausgabe im "Includescript" erfolgt einfach per

header("Content-Type: text/plain");
echo $name['name'];

Wie bekomme ich nun diese Ausgabe in einen String, ohne den Umweg über eine URL gehen zu müssen?
Sinngemäss(!) ein

$string = include "datei.php";

thx4hlp

Gruss
Manuel

  1. hi,

    Ich will die Ausgabe einer PHP-Datei in einen String schreiben.
    Jetzt geh ich momentan den Umweg über eine URL und file_get_contents()

    Wie bekomme ich nun diese Ausgabe in einen String, ohne den Umweg über eine URL gehen zu müssen?

    Wenn du die _geparste Ausgabe_ dieses Scriptes haben willst, _musst_ du über HTTP gehen (Ekligkeiten wie eval wollen wir hier ja nicht erwähnen^W^W^W^W^W^W^W^W^W).

    Oder du bindest das Script eben per include ein - wenn du das an der "richtigen" Stelle machst, hast du die Ausgabe schon da, wo sie hin soll.
    Wenn das nicht geht - dann bleibt wohl nur output buffering - Buffer aktivieren, include machen, Bufferinhalt in Variable einlesen und Buffer löschen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hi,

      Wenn du die _geparste Ausgabe_ dieses Scriptes haben willst,

      Die ungeparste ist ja kein Problem ;)

      _musst_ du über HTTP gehen

      Hab ich befürchtet ....

      (Ekligkeiten wie eval wollen wir hier ja nicht erwähnen^W^W^W^W^W^W^W^W^W).

      Das will ich in jedem Fall vermeiden. Wie du sagst, ist das eklig ;)

      Oder du bindest das Script eben per include ein - wenn du das an der "richtigen" Stelle machst, hast du die Ausgabe schon da, wo sie hin soll.

      Das ist ein Problem. Es ist ein Modul, das u.a. unter PHPKIT läuft. Und da wird der gesammte Text als Variable übergeben, somit muss ich die Ausgabe auch als Variable "verarbeiten"

      Wenn das nicht geht - dann bleibt wohl nur output buffering - Buffer aktivieren, include machen, Bufferinhalt in Variable einlesen und Buffer löschen.

      Auch ungünstig. PHPKIT-Anwender sind zu 98% PHP-Laien (um das mal vorsichtig auszudrücken). Bis ich eine Doku geschrieben hab, wie die das einbinden müssen, ist PHPKIT veraltet :D

      Vermutlich werd ich die Scripte umbauen, damit die Ausgabe nicht direkt erfolgt, sondern eine Variable zur Verfügung gestellt wird.

      Danke aber trotzdem.

      1. Hi,

        Vermutlich werd ich die Scripte umbauen, damit die Ausgabe nicht direkt erfolgt, sondern eine Variable zur Verfügung gestellt wird.

        Muß keine Variable sein. Gib am Ende der einzubindenden PHP-Datei das Gesummse mit return zurück an das Hauptscript.

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        1. Hi,

          Muß keine Variable sein. Gib am Ende der einzubindenden PHP-Datei das Gesummse mit return zurück an das Hauptscript.

          Und wie bekomm ich den Wert dann in einen String?

          1. Hi,

            Und wie bekomm ich den Wert dann in einen String?

            <?php
             // include.php
             return "asafaffafa";
            ?>

            Im Hauptscript: $ergebnis=include("include.php");

            Gruß, Cybaer

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
            1. Hi,

              <?php
              // include.php
              return "asafaffafa";
              ?>

              Im Hauptscript: $ergebnis=include("include.php");

              Habs grad auch in der Doku gefunden. Danke für den Tip. Ich denke, das hilft mir bei einigen Problemen weiter. Bisher kannte ich diese Funktion nicht und hatte es wohl immer überlesen.

    2. Hi,

      Wenn du die _geparste Ausgabe_ dieses Scriptes haben willst, _musst_ du über HTTP gehen

      Das ist so nicht korrekt. Unter Apache mit PHP als Modul kann hier virtual() verwendet werden.

      Gruß, Cybaer

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
      1. hi,

        Wenn du die _geparste Ausgabe_ dieses Scriptes haben willst, _musst_ du über HTTP gehen

        Das ist so nicht korrekt. Unter Apache mit PHP als Modul kann hier virtual() verwendet werden.

        Danke, kannte ich noch nicht.

        (Auch wenn der Unterschied HTTP-Request <-> interner Subrequest hier m.E. kein sonderlich großer ist.)

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hi,

          (Auch wenn der Unterschied HTTP-Request <-> interner Subrequest hier m.E. kein sonderlich großer ist.)

          Definiere "sonderlich groß"! =;-)

          Gruß, Cy-"und komm mir jetzt nicht mit '>20cm'!"-baer O;-)

          --
          Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
      2. Hi,

        Das ist so nicht korrekt. Unter Apache mit PHP als Modul kann hier virtual() verwendet werden.

        Kannte ich auch noch nicht, werd ich mir merken. Allerdings in meinem Fall ungünstig, da die Scripte auch mit PHP-CGI ausfürbar sein müssen.

    3. Ich grüsse den Cosmos,

      Wenn das nicht geht - dann bleibt wohl nur output buffering - Buffer aktivieren, include machen, Bufferinhalt in Variable einlesen und Buffer löschen.

      Ich bin gerade am Ausarbeiten eines Konzeptes für Erweiterungsmodule unter PHP.

      Jetztz hab ich das mal mit Outputbuffering probiert und hab ne frage: Gibts irgendwas, was dagegen spricht? Speichernutzung, Verfügbarkeit, Sicherheitslücken ....

      Mein Ansatz:

        
      ob_start()  
      echo "Das ist mein text";  
      $string = ob_get_clean();  
      
      

      Würde mal eure Meinung interessieren :)

      Möge das "Self" mit euch sein

      --
      Ich bin keine Signatur, ich fülle nur diesen leeren Platz mit sinnlosen Worten
      1. Hi,

        Jetztz hab ich das mal mit Outputbuffering probiert und hab ne frage: Gibts irgendwas, was dagegen spricht?

        Nein

        Allerdings ist ob_get_clean() erst ab 4.3 verfügbar. Ältere PHPs sind aber noch im Produktiveinsatz (ab 4.1 geht es praktisch los).

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        1. Hallo.

          Allerdings ist ob_get_clean() erst ab 4.3 verfügbar.

          Dafür nimmt es die Regel auf, wo sie passiert. -- Jetzt auch als ob_get_clean(  ) für die stärkeren Tage.
          MfG, at

          1. Hi,

            Allerdings ist ob_get_clean() erst ab 4.3 verfügbar.
            Dafür nimmt es die Regel auf, wo sie passiert. -- Jetzt auch als ob_get_clean(  ) für die stärkeren Tage.

            Pfui, pfui - PFUI!

            Gruß, Cybaer

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        2. Ich grüsse den Cosmos,

          Allerdings ist ob_get_clean() erst ab 4.3 verfügbar. Ältere PHPs sind aber noch im Produktiveinsatz (ab 4.1 geht es praktisch los).

          Das ist kein Problem, da dieses Projekt sowieso PHP5 vorraussetzt ;)
          Also kann ich das bedenkenlos verwenden.

          Möge das "Self" mit euch sein

          --
          Ich bin keine Signatur, ich fülle nur diesen leeren Platz mit sinnlosen Worten
  2. mit "file" ?

    1. mit "file" ?

      Und was soll ich dann mit dem Quelltext in meinem String?
      Schlimmer noch, ich hab dann keinen String sondern ein Array ;)