Einlesen von PHP-Code in Array
eisbaer04
- php
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
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.
Ä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
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
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
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
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
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
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
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
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
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