PeterK: PHP-Script in String Parsen

Hallo!

Ich möchte gerne etwas in der Atr realisieren, dass ein PHPScript ausgeführt wird und das resultat in einen String geschrieben wird. Ich könnte natürlich

ob_start();
include "xyz.php"
$sResume = ob_get_contents();
ob_end_clean();
echo machwas($sResume);

nehmen, aber was ist, wenn xyz.pxp auch OutputBuffering-Funktionen benutzt und z.B. auf die selbe Weise wieder eine andere Datei einbindet?? Dann gehts nichtmehr! Gibt es eine Möglichkeit einen Datei inklusive aller enthalten Includes in einen String abarbeiten zu lassen? Man könnte zum Beispiel das Script als extra Anwendung starten. Geht sowas? Und wie siehts dann mit SafeMode-Beschränkungen und der Performance aus?

Thx, Peter

--
Es gibt immer eine lösung - auch wenn sie keiner findet!!
Dat bin isch:ss:) zu:) ls:[ fo:| de:< va:| ch:? sh:) n4:~ rl:( br:$ js:| ie:) fl:)
  1. Halihallo PeterK

    Ich möchte gerne etwas in der Atr realisieren, dass ein PHPScript ausgeführt wird und das resultat in einen String geschrieben wird. Ich könnte natürlich

    Warum willst du das? - Wenn du selbst für deine Codes verantwortlich bist: Behelfe
    dir einer besseren Lösung! - Eine derartige "Lösung" wie du sie hier vorschlägst ist
    höchstens ein sehr übler Workaround.

    nehmen, aber was ist, wenn xyz.pxp auch OutputBuffering-Funktionen benutzt und z.B. auf die selbe Weise wieder eine andere Datei einbindet?? Dann gehts nichtmehr! Gibt es eine Möglichkeit einen Datei inklusive aller enthalten Includes in einen String abarbeiten zu lassen? Man könnte zum Beispiel das Script als extra Anwendung starten. Geht sowas? Und wie siehts dann mit SafeMode-Beschränkungen und der Performance aus?

    Ja. Informiere dich über http://www.php.net/manual/de/function.popen.php,
    damit kannst du die Ausgabe (die _ganze_) des Scriptes einlesen und bei dir in den
    gewünschten String einlesen und ggf. bearbeiten. Aber eben: Wenn's anders geht, geh
    anders.

    Viele Grüsse

    Philipp

    1. Die Idee war, formatierten Quelltext auszugeben. Dh. z.b. Script A:

      <html>
        <head>
          <style type="text/css"><!--
      <? IncludeEx("default.css", 6); ?>
          -->
        </head>
        .  .  .

      default.css:

      p
      {
        color:red;
      }

      Ergebnis:

      <html>
        <head>
          <style type="text/css"><!--
            p
            {
              color:red;
            }
          -->
        </head>
        .  .  .

      IncludeEx:
      function IncludeEx($page, $depth) {
        $sFirst=ob_get_contents();
        ob_end_clean();
        echo $sFirst;

      ob_start();

      include $page;

      $sSecond=ob_get_contents();
        ob_end_clean();

      $sSecond = moveright($sSecond, $depth);
        echo $sSecond;
        ob_start();
      }

      Nur ... wenn $page nochmal eine Seite mit IncludeEx einbindet, kommt der OutputBuffer durcheinander, da der eine solche Rekursive verschachtelung nicht kennt...

      Thx, Peter