我偶然发现了以下的世俗性:
$ handle = fopen(realpath("../ folder/files.php"),"r");
无法读取文件,但只要从文件中删除php标签,它就变得可读,我的脚本在页面上打印非空文件内容.此外,file.php永远不会执行,所以我想知道为什么这是问题.
我猜不知道Apache或PHP不会让包含php标签的文件只读取PHP文本.
如何为我的特定文件启用它(当然在全球范围内执行它会不安全)?
使用PHP 5.2.x和Apache 2.0
我知道了.我正在使用Google Chrome来调试页面,我意识到在查看源代码时,Chrome会出于某种原因隐藏PHP标记.我在Firefox上运行了相同的测试,查看源代码证明一切正常.
以下是测试详情:
码:
$fh = fopen("test.php","r"); while ($line = fgets($fh)){ echo $line; }
要读取的文件(test.php):
testing testing3
渲染(在Chrome和Firefox上):
testing testing3
查看源代码(使用firefox):
testing testing3
查看源代码(使用Chrome - 我的错误来源):
testing testing3
你确定你正确地解释了输出吗?如果将文件内容直接打印到页面输出,浏览器将不会在尖括号内显示文本,因为它认为它是标记.将您的内容作为text/plain
,或使用浏览器的"查看源"命令来确保您正在查看真正存在的内容,而不仅仅是浏览器选择显示的内容.