Hallo,
ich benutze seit Jahren den Befehl file() um in PHP den Inhalt einer gesamten Datei als Array einzulesen.
Bisher habe ich entweder einen lokalen Dateipfad (C:\...\filename.php) oder eine URL (http:/www.../filename.php) angegeben. Die Dateien wurden immer problemlos eingelesen, auch wenn diese PHP-Source-Code enthielten und demnach mit dem Prefix <?php beginnen.
Nun verwende ich zum ersten mal folgenden Pfad: http://localhost/.../filename.php
Das (für mich) überraschende Ergebnis: Es wird nichts eingelesen! Also Beispiel:
Inhalt der Datei http://localhost/.../filename.php: <?php bla bla bla echo "Hallo world"; bla bla ?>
Ausgeführter PHP-Code:
$test_tab = file('http://localhost/.../filename.php');
if($test_tab !== FALSE) echo "Nicht FALSE!<br>";
if(!is_array($test_tab)) echo "Kein Array<br>";
echo "Länge".strlen($test_tab);
Ergebnis der Ausführung:
Nicht FALSE!
Kein Array
Länge 0
Das gleiche passiert, wenn ich mit fopen() fgets() fclose() die Zeilen der Datei einzeln einlesen will.
Sobald ich aber das <?php aus dem Datei-Inhalt entferne (oder auch nur das letzte p von dieser Prefix) funktioniert es einwandfrei, sprich der Inhalt wird eingelesen und befindet sich danach in $test_tab[0].
Kann mir jemand sagen, warum sich PHP so verhält und ob es einen Parameter gibt, über den dieses Verhalten so steuern kann, dass er mir den Inhalt ganz normal einliest?
Noch eine Info: Wenn das <?php nicht direkt am Anfang stehen würde, würde er den Inhalt der Datei bis zu dem <?php einlesen. Also Beispiel: Datei-Inhalt = echo "hello world"; <?php bla bla bla bla ende over and out ?>. Dann würde $test_tab[0] hinterher echo "hello world"; enthalten.
Vielen Dank im Vorraus,
Michael
ich benutze seit Jahren den Befehl file() um in PHP den Inhalt einer gesamten Datei als Array einzulesen.
Bisher habe ich entweder einen lokalen Dateipfad (C:\...\filename.php) oder eine URL (http:/www.../filename.php) angegeben. Die Dateien wurden immer problemlos eingelesen, auch wenn diese PHP-Source-Code enthielten und demnach mit dem Prefix <?php beginnen.
Nun verwende ich zum ersten mal folgenden Pfad: http://localhost/.../filename.php
Das (für mich) überraschende Ergebnis: Es wird nichts eingelesen! Also Beispiel:
Inhalt der Datei http://localhost/.../filename.php: <?php bla bla bla echo "Hallo world"; bla bla ?>
Ausgeführter PHP-Code:
$test_tab = file('http://localhost/.../filename.php');
if($test_tab !== FALSE) echo "Nicht FALSE!<br>";
if(!is_array($test_tab)) echo "Kein Array<br>";
echo "Länge".strlen($test_tab);
Ergebnis der Ausführung:
Nicht FALSE!
Kein Array
Länge 0
Das gleiche passiert, wenn ich mit fopen() fgets() fclose() die Zeilen der Datei einzeln einlesen will.
Sobald ich aber das <?php aus dem Datei-Inhalt entferne (oder auch nur das letzte p von dieser Prefix) funktioniert es einwandfrei, sprich der Inhalt wird eingelesen und befindet sich danach in $test_tab[0].
Kann mir jemand sagen, warum sich PHP so verhält und ob es einen Parameter gibt, über den dieses Verhalten so steuern kann, dass er mir den Inhalt ganz normal einliest?
Noch eine Info: Wenn das <?php nicht direkt am Anfang stehen würde, würde er den Inhalt der Datei bis zu dem <?php einlesen. Also Beispiel: Datei-Inhalt = echo "hello world"; <?php bla bla bla bla ende over and out ?>. Dann würde $test_tab[0] hinterher echo "hello world"; enthalten.
Vielen Dank im Vorraus,
Michael
Comment