eisbaer04: Einlesen von PHP-Code in Array

Hallo,

erstmal zur Verdeutlichung meines Problems ein bisschen Code:

=== index.php ===
<?
 /* beliebiger code */
 $title = 'Die Startseite';
 /* beliebiger code */
 include('page_start.php');
?>
Hier ist der <b>Inhalt</b> der Seite
<?
 include('page_end.php');
?>
=== ===
Nun habe ich mir noch ein Seitendurchsuchungsscript gebaut, dass auch soweit ganz gut funktioniert, nur habe ich ein kleines Problem. Beim Einlesen der Datei index.php in ein Array steht der $title nicht in dem Array drin.Ich probiere das im Moment über file(...). Nur leider steht dann im Array nur "Hier ist der <b>Inhalt</b> der Seite" drin, d.h. der PHP-Code wird beim Einlesen überlesen.
Was macheich falsch oder einfach gefragt: Wie komme ich an den Seitentitel? (Klar, mit Regulären Ausdrücken, den/die/das Regex hab ich auch schon zum laufen gebracht, aber wie kann ich <? ?> einlesen?)

Thats all Folks
 eb4

  1. Kurz und knapp:

    file() liest den Quelltext ein und parst keien Variablen und führt keinen Code aus. Wenn du das tun willst musst du durch das file-Array durchgehen und jede Zeile mit exec ausführen. Aber ob das dann sinnvoll ist...

    Ähm, was mich eh wundert ist, dass du index.php mit file() einliest. Was soll das bringen?

    Ratlos,
           Michael H.

    1. Ähm, was mich eh wundert ist, dass du index.php mit file() einliest. Was soll das bringen?

      Naja, ich will keinen Code ausführen, ich will nur an die Zeile

      $title = 'Die Startseite';

      rankommen. Ich hab versucht, die Datei index.php mit file in ein array einzulesen und dann mit RegEx den Titel auszulesen. Wenn ich in der Datei index.php die <? und ?> weggemacht habe, dann hat das funktioniert. Wenn die <? ?> aber da waren, hat es nicht funktioniert -> Daher meine Vermutung, dass PHP-Code beim einlesen überlesen wird.
      Aber vielleicht lag das auch einfach an der Uhrzeit (gestern 00:15).

      Ratlos,

      Sorry, wenn ich mich zu undeutlich ausgedrückt habe.

      Michael H.

      eb4

      1. Naja, ich will keinen Code ausführen, ich will nur an die Zeile

        $title = 'Die Startseite';

        rankommen.

        wenn du das ganz einfach mit nem file schaffen könntest/würdest dann könntest du ruck zuck jedes beliebiges php script von jedem beliebigen webserver klauen ... das sollte dir dich schon zu denken geben

        wie es ginge hat dir Michael bereits gesagt

        1. wenn du das ganz einfach mit nem file schaffen könntest/würdest dann könntest du ruck zuck jedes beliebiges php script von jedem beliebigen webserver klauen ... das sollte dir dich schon zu denken geben

          Stimmt, daran hab ich noch gar nicht gedacht

          wie es ginge hat dir Michael bereits gesagt

          werde das mal heute abend ausprobieren

    2. hi,

      file() liest den Quelltext ein und parst keien Variablen und führt keinen Code aus.

      ich vermute, dass er mit file eine datei über http:// eingelesen hat, anstatt direkt über das lokale dateisystem zu gehen.

      deshalb wurde die datei natürlich bereits geparst, und die innerhalb von <?php ... ?> stehenden variablen-deklarationen sind jetzt nicht mehr in der ausgabe vorhanden.

      gruss,
      wahsaga

      1. hi,

        Hi,

        ich vermute, dass er mit file eine datei über http:// eingelesen hat, anstatt direkt über das lokale dateisystem zu gehen.

        Nee, ich habe einen lokalen pfadnamen gehabt ("./../index.php" um genau zu sein).

        gruss,
        wahsaga

        Thats all Folks
         eb4

        1. Huhu

          Nee, ich habe einen lokalen pfadnamen gehabt ("./../index.php" um genau zu sein).

          .... und dann hast Du Dir den eingelesenen Dateiinhalt im Browser anzeigen lassen?
          Stimmt's oder hab' ich recht?

          Viele Grüße

          lulu

          --
          bythewaythewebsuxgoofflineandenjoytheday
          1. Huhu
            .... und dann hast Du Dir den eingelesenen Dateiinhalt im Browser anzeigen lassen?

            hab ich mir gedacht, dass diese Frage kommt ;-). Mir ist schon klar, dass der Server bei der ausgabe <? ?> parst...und da da kein echo ist, ist auch nichts zum Anzeigen im Browser.

            Stimmt's oder hab' ich recht?

            Naja, so halb, ich habe mir nur den $array[0] ausgeben lassen, da das array nur eine länge von 1 hatte, habe ich daraus geschlossen, dass auch wirklich nur die eine Zeile drin steht. Und in dieser stand dann die auch nur die Zeile "Hier ist der <b>Inhalt</b> der Seite" drin, was aber eigentlich $array[6] wäre, wenn die <? ... ?> auch drin stehen würden.

            Viele Grüße

            lulu

            Thats all Folks
             eb4

          2. Hello,

            .... und dann hast Du Dir den eingelesenen Dateiinhalt im Browser anzeigen lassen?
            Stimmt's oder hab' ich recht?

            Und was soll das für einen Unterschied machen?

            echo $variable oder echo htmlentities($variable), damit der Browser nicht durchdreht, da wird doch $variable nicht mehr geparst. Dafür müsste man schon eval() benutzen.

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            1. Huhu Tom

              Und was soll das für einen Unterschied machen?

              Der Unterschied wäre gewesen, dass der Browser die PHP-Tags
              zwar nicht interpretiert aber, da unbekannte "Tags", auch nicht (bzw. nur im Quelltext) anzeigt.

              Viele Grüße

              lulu

              --
              bythewaythewebsuxgoofflineandenjoytheday
              1. Huhu Lulu,

                Und was soll das für einen Unterschied machen?
                Der Unterschied wäre gewesen, dass der Browser die PHP-Tags
                zwar nicht interpretiert aber, da unbekannte "Tags", auch nicht (bzw. nur im Quelltext) anzeigt.

                Diesen gedankengang konnte ich zwar riechen, aber gerade, wenn man (ggf. noch als Anfänger) Probleme hat, ist man bestimmt in 90% der Fällle Betriebsblind für den unterschwelligen Tipp. Du hast ihn schnließlich nicht ausgesprochen.

                Sich den resultierenden Quellcode anzuschauen, sollte außerdem das erste sein, was ein PHP-Lehrling sich angewöhnt.

                Liebe Grüße aus http://www.braunschweig.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen