php ausführen, einlesen und parsen - aber wie?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • php ausführen, einlesen und parsen - aber wie?

    Ich lese eine includete datei mit html code ein. Diese Datei wird geparst, also nach bestimmten zeichen gesucht, diese werden ersetzt und dann wird die datei ausgeben.

    Dann gibt es da noch die Dateien mit php-code. Diese sollen auch nach den selben Regeln durchsucht werden wie die mit reinem html-code. Wie mache ich da? Eine Idee wäre den php-dode, der html produziert, irgentwie auszuführen, den erzeugten code in eine Datei zu schreiben und diese dann auszulesen. Vermutlich geht das auch ohne den Umweg des zwischenspeichern in eine Datei. Ich weiß aber bei beiden Versionen nicht wie ich es machen soll.

    Wie wird php-code ausgeführt, ohne dass er sichtbar wird?
    Last edited by janein; 22-11-2007, 15:13.

  • #2
    eval() + Ausgabepufferung

    Gruss

    tobi

    p.s. eval() kann sehr evil sein v.a. dann wenn du im Code noch Daten hast, die der User eingegeben hat.
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Comment


    • #3
      Von eval möchte ich aufgrund der Sicherheitsbedenken lieber Abstand nehmen. Gibt es da noch Alternativen?
      Der Ausgabepufferung ist schon mal ein Ansatz. Danke. Was gibt es noch für Ansätze?
      Last edited by janein; 22-11-2007, 15:29.

      Comment


      • #4
        Von eval möchte ich aufgrund der Sicherheitsbedenken lieber Abstand nehmen.
        Hää...
        Aber du WILLST doch PHP zur Ausführung bringen...
        Include ist bei "bösem Code" genauso gefährlich wie eval()!!
        Wir werden alle sterben

        Comment


        • #5
          Original geschrieben von combie
          Hää...
          Aber du WILLST doch PHP zur Ausführung bringen...
          Include ist bei "bösem Code" genauso gefährlich wie eval()!!
          Klar, wie benutze ich eval() denn, dass es sicher ist, mal abgesehen davon, dass einige Provider es ganz abgeschaltet haben? Gibt es nur eval() um php zur Ausführung zu bringen, keine Alternative?

          Comment


          • #6
            Doch, es gibt Alternativen. Wenn du den PHP-Code ohnehin nicht im Kontext des Scripts ausführen möchtest, kannst du zum Beispiel über die Kommadozeile gehen.
            PHP Code:
            shell_exec('/usr/bin/php -f '.$file); 
            Um $file in einer Webserverumgebung laufen zu lassen, bietet sich fsockopen() an. Oder fopen(), falls allow_url_fopen=1.

            Jede dieser Varianten belastet den Server natürlich mehr als ein einfaches include oder eval().

            Comment


            • #7
              die frage ist ja nun keinesfalls neu.
              PHP Code:
              ob_start();
              include(
              $file);
              $parsed_content=ob_get_contents();
              ob_end_clean(); 
              da braucht man nicht mit eval oder systemaufrufen hantieren.

              Comment


              • #8
                ob_get_contents();
                Das war die Lösung. Ich kannte zwar ob_get_contents(), doch wusste ich nicht, dass man so auch eine Include Datei einer Variablen übergeben kann.

                Danke!

                Comment


                • #9
                  *gelöscht*
                  Meine Antwort war völliger Quark!!!
                  Habe es zuerst falsch verstanden!!
                  Last edited by combie; 24-11-2007, 13:26.
                  Wir werden alle sterben

                  Comment

                  Working...
                  X