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

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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?
    Zuletzt geändert von janein; 22.11.2007, 16: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)

    Kommentar


    • #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?
      Zuletzt geändert von janein; 22.11.2007, 16:29.

      Kommentar


      • #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

        Kommentar


        • #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?

          Kommentar


          • #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().

            Kommentar


            • #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.

              Kommentar


              • #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!

                Kommentar


                • #9
                  *gelöscht*
                  Meine Antwort war völliger Quark!!!
                  Habe es zuerst falsch verstanden!!
                  Zuletzt geändert von combie; 24.11.2007, 14:26.
                  Wir werden alle sterben

                  Kommentar

                  Lädt...
                  X