Sui: suche function wie include, nur als Rückgabewert der Inhalt

Hey Leute,

ich glaube, das Thema sagt schon fast alles, aber ich schreib es hier nochmal hin... Ich setze auf ein System auf, dass keine direkte Ausgabe erlaubt. Das wird alles in Module verpackt und so weiter und so fort. Um von verschiedenen Anbietern Inhalte zu übernehmen muss ich allerdings deren Dateien per include einlesen. Schön blöd, dass include das ganze parsed und dann direkt ausgibt. Gibt es eine Alternative, wo ich allerdings keine direkte ausgabe habe sondern den inhalt als String zurückbekomme?

Gruß
Chop-Sui

  1. Mit der Funktion file() bekommst du ein String Array zurück:

    z.B.: test.txt
    --------------------
    hallo
    wie geht es
    ciao
    --------------------

    $array=file("test.txt");
    ==> $array[0]="hallo"
    ==> $array[1]="wie geht es"
    ==> $array[2]="ciao"

    lg Gerhard

    1. Jo, super, vielen Dank!

  2. Hello,

    ich glaube, das Thema sagt schon fast alles, aber ich schreib es hier nochmal hin... Ich setze auf ein System auf, dass keine direkte Ausgabe erlaubt. Das wird alles in Module verpackt und so weiter und so fort. Um von verschiedenen Anbietern Inhalte zu übernehmen muss ich allerdings deren Dateien per include einlesen. Schön blöd, dass include das ganze parsed und dann direkt ausgibt. Gibt es eine Alternative, wo ich allerdings keine direkte ausgabe habe sondern den inhalt als String zurückbekomme?

    Die Funktion heißt eval() und ist genauso, wie include(), mit äußerster Vorsicht zu verwenden.

    Eine Alternative ist:

    ob_start();                # Buffering starten
    include();                 # Include durchführen
    $ausgabe = ob_get_clean(); # Buffer in Variable schreiben
    ob_end_clean();            # Buffering stoppen.

    Du musst nur sicherstellen, dass nicht andere eingebundene Module vorher schon ob_start() aufgerufen haben. Dann müsstest Du den Buffer erst auslesn und sichern, und dann erst neustarten.

    Harzliche Grüße vom Berg
    esst mehr http://www.harte-harzer.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hello,

      kleiner Nachtrag:

      Du musst nur sicherstellen, dass nicht andere eingebundene Module vorher schon ob_start() aufgerufen haben. Dann müsstest Du den Buffer erst auslesn und sichern, und dann erst neustarten.

      Die Buffererung lässt sich auch schachteln. Hab ich aber noch nie gemacht ;-)
      http://de.php.net/manual/en/function.ob-get-level.php

      Harzliche Grüße vom Berg
      esst mehr http://www.harte-harzer.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
  3. hi,

    Schön blöd, dass include das ganze parsed und dann direkt ausgibt. Gibt es eine Alternative, wo ich allerdings keine direkte ausgabe habe sondern den inhalt als String zurückbekomme?

    file_get_contents()?

    gruß,
    wahsaga

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