Claudia B.: php Files einlesen

$str = implode("", @file("hallo.php"));
$str = strip_tags($str, "<table>,<tr>,<td>, <a>, <p>,<img>,<b>,<dt>, <dl>,</span>,<div>,  ");
echo $str;

Ich lese mit obigen Skript ein PHP-Skript ein und gebe dessen Inhalte wieder aus. Leider habe ich in hallo.php dynamische Inhalte. Mein Skript liest hier nur den statischen Bereich aus.

Wie kann ich den Seiteninhalt so auslesen, wie es auch im Browser aufgebaut wird?

Bei include habe ich das Problem, dass die Tags html und head angezeigt werden, das möchte ich nicht.

Evtl. gibt es eine Funktion mit der man includen kann und explizit Tags ausschließen kann?

Vielen Dank.

..und guten Rutsch!!

Grüße

  1. Hi

    [...]

    Ich lese mit obigen Skript ein PHP-Skript ein und gebe dessen Inhalte wieder aus. Leider habe ich in hallo.php dynamische Inhalte. Mein Skript liest hier nur den statischen Bereich aus.

    Latürnich. Du öffnest ja über das Filesystem und nicht über den Parser.

    Wie kann ich den Seiteninhalt so auslesen, wie es auch im Browser aufgebaut wird?

    Ich kenne deine Datenstruktur nicht.

    Bei include habe ich das Problem, dass die Tags html und head angezeigt werden, das möchte ich nicht.

    Dann entferne die Tags aus dem Include.

    Evtl. gibt es eine Funktion mit der man includen kann und explizit Tags ausschließen kann?

    AFAIK nicht, aber warte mal auf andere Antworten. Man könnte ja zunächst die Ausgabe nur in eine Variable schreiben und dann mit RegEx die unerwünschten Tags entfernen. In jedem Falle musst du aber am Include was ändern.

    Vielen Dank.

    ..und guten Rutsch!!

    Gleichfalls - bei mir geht das sogar: Nach 10cm Neuschnee-Matsch... ;-)

    Fabian

  2. Hallo Claudia,

    $str = implode("", @file("hallo.php"));
    Wie kann ich den Seiteninhalt so auslesen, wie es auch im Browser aufgebaut wird?

    Hiermit öffnest Du den Quelltext der Datei. Damit wird der PHP-Code nicht bearbeitet. Wenn Du den Inhalt haben willst, dann könntest Du output buffering verwenden, ist aber nicht das schnellste:

    ob_start ();
    include ("hallo.php");
    $contents = ob_get_contents ();
    ob_end_clean ();

    Wobei zu beachten ist, dass in hallo.php kein exit auftauchen darf - wenn das Script hallo.php sich "beenden" will, dann musst Du return nehmen.

    Bei include habe ich das Problem, dass die Tags html und head angezeigt werden, das möchte ich nicht.

    Mit der Output-Buffering-Lösung bekommst Du den Inhalt (in $contents) - den kannst Du dann durch strip_tags jagen...

    Evtl. gibt es eine Funktion mit der man includen kann und explizit Tags ausschließen kann?

    Naja, nicht direkt, die obere Methode arbeitet praktisch das Script ab und fängt den Inhalt ab, bevor er zum Browser gesendet wird. Ist wie gesagt etwas langsam, (naja, nicht wirklich viel, je mehr Inhalt hallo.php produziert, desto langsamer wird es) aber AFAIK die einzige Möglichkeit.

    Grüße,

    Christian

    --
    Ich wünsche allen frohe Weihnachten!
    Ich bitte darum, dass ein Themenbereich (BARRIEREFREIHEIT) eingerichtet wird.