PHPは、PHPコードをテキストファイルとして含むファイルを読み取ることができません
-
19-08-2019 - |
質問
次の特徴につまずいた:
$ handle = fopen(realpath(<!> quot; ../ folder / files.php <!> quot;)、<!> quot; r <!> quot;);
ファイルを読み取ることはできませんが、ファイルからphpタグを削除するとすぐに、 読み取り可能になり、私のスクリプトは空でないファイルコンテンツをページに印刷します。 また、file.phpは決して実行されることはないので、なぜ問題なのかと思います。
どういうわけか、ApacheやPHPは、PHPタグを含むファイルをPHPを単なるテキストとして読み取れません。
特定のファイルに対して有効にするにはどうすればよいですか(グローバルに実行するコースは安全ではありません)?
PHP 5.2.xおよびApache 2.0の使用
解決
わかりました。 Googleクロムを使用してページをデバッグしていましたが、ソースを表示すると、何らかの理由でChromeがPHPタグを隠すことに気付きました。 Firefoxで同じテストを実行し、ソースを表示すると、すべてが正常であることが証明されました。
テストの詳細は次のとおりです。
コード:
$fh = fopen("test.php","r");
while ($line = fgets($fh)){
echo $line;
}
読み込むファイル(test.php):
testing <?php testing2 ?> testing3
レンダリング(ChromeとFirefoxの両方):
testing testing3
ソースを表示(firefoxを使用):
<*>ソースを表示(Chromeを使用-間違いの原因):
<*>他のヒント
出力を正しく解釈していることを確認しますか?ファイルの内容をページ出力に直接印刷する場合、ブラウザはそれがタグであると判断するため、山括弧内にテキストを表示しません。コンテンツをtext/plain
として配信するか、ブラウザの<!> quot; view source <!> quot;を使用します。ブラウザが表示するように選択したものだけでなく、実際に存在するものを見ていることを確認するコマンド。
うーんfile_get_contents()は私のために働いています。 fopenのみの問題ですか?
編集:どのエラーが正確に表示されますか?
Wadih M.が問題を解決しました。 PHPタグは、ブラウザーでタグで囲まれたphpソースの出力全体を非表示にしますが、[ソースの表示]には表示されます。ありがとう!
htmlspecialchars($line);
問題を解決しました。
ファイルの名前を変更します それを読んで データを取得する それらを変更する ファイルの名前を変更します:)