Frage

Ich habe auf den folgenden pecularity gestolpert:

$ = fopen Griff (realpath ( "../ folder / files.php"), "r");

kann eine Datei nicht lesen, aber sobald ich php-Tags aus der Datei zu entfernen, es wird lesbar und meine Skripte druckt nicht leeren Dateiinhalt auf der Seite. Auch file.php wird nie ausgeführt, so frage ich mich, warum es ist das Problem.

Ich denke, irgendwie Apache oder PHP läßt keine Dateien lesen php-Tags PHP als nur Text enthalten.

Wie kann ich es für meine bestimmte Datei ermöglichen (natürlich, es zu tun global wäre unsecure)?

Mit PHP 5.2.x und Apache 2.0

War es hilfreich?

Lösung

Ich habe es. Ich war mit Google Chrome der Seite zu debuggen, und ich erkennen, dass, wenn die Quelle sehen, Chrome PHP-Tags aus irgendeinem Grunde versteckt. Ich lief den gleichen Test auf Firefox, und die Quelle sehen bewiesen, dass alles in Ordnung war.

Hier sind die Testdetails:

Code:

$fh = fopen("test.php","r");
while ($line = fgets($fh)){
echo $line;
}

Datei zu lesen (test.php):

testing <?php testing2 ?> testing3

Rendering (sowohl auf Chrome und Firefox):

testing  testing3

Quelltext anzeigen (mit Firefox):

testing <?php testing2 ?> testing3

Quelltext anzeigen (mit Chrome - Quelle meines Fehlers):

testing  testing3

Andere Tipps

Sind Sie sicher, dass Sie die Ausgabe korrekt sind zu interpretieren? Wenn Sie den Inhalt der Datei direkt auf Ihre Seite Ausgabe drucken, wird ein Browser nicht Text in spitzen Klammern angezeigt werden, weil sie denkt, ist es ein Tag. Servieren Sie Ihren Inhalt als text/plain, oder verwenden Sie das Browser „Quelltext anzeigen“ Befehl, um sicherzustellen, Sie suchen, was wirklich ist da, und nicht nur, was der Browser angezeigt werden wollte.

Hmm file_get_contents () ist für mich arbeiten. Ist es nur für fopen ausstellen?

Edit: welche Fehler Sie genau erhalten

Wadih M. löste das Problem. PHP-Tags versteckt die ganze Tag geschlossene PHP Quelle für die Ausgabe im Browser, sondern View Source zeigt diese an. Dank!

Ich bin mit htmlspecialchars($line);

Es löste das Problem.

die Datei umbenennen Lies es erhalten Sie Ihre Daten ändere sie rerename Ihre Datei:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top