PHP不能读取包含PHP代码为文本文件的文件
-
19-08-2019 - |
题
我于以下特征模拟绊倒:
$处理=的fopen(真实路径( “../文件夹/ files.php”), “R”);
不能读取一个文件,但只要我从文件中删除PHP标记, 它是可读的,我的脚本在页面上打印非空的文件内容。 此外,file.php是从来没有执行,所以我不知道为什么它是这个问题。
我想在某种程度上Apache或者PHP不让读取包含PHP标签作为PHP只是文本文件。
我如何可以启用它为我的特定文件(当然这样做在全球将是不安全的)?
使用PHP 5.2.x和Apache 2.0
解决方案
我知道了。我使用谷歌Chrome浏览器调试页面,我意识到,查看源文件时,浏览器隐藏PHP代码的某些原因。我跑在Firefox相同的测试,并查看源证明,一切安好。
下面是测试细节:
代码:
$fh = fopen("test.php","r");
while ($line = fgets($fh)){
echo $line;
}
要被读取文件(test.php的):
testing <?php testing2 ?> testing3
渲染(在两个铬和Firefox):
testing testing3
查看源(使用火狐):
testing <?php testing2 ?> testing3
查看源(使用铬 - 我的错误的来源):
testing testing3
其他提示
您确定是否正确解释输出?如果直接打印文件内容到页面的输出,因为它认为它是一个标签的浏览器不会显示尖括号内的文本。服务内容为text/plain
,或使用浏览器的“查看源文件”命令,以确保你在看什么是真的存在,而不是浏览器选择显示什么。
嗯file_get_contents()函数是为我工作。难道只为的fopen问题?
编辑:你得到了什么错误究竟
Wadih M.解决的问题。 PHP的标签隐藏在浏览器中的整个标签封闭php源码输出,但查看源文件显示它们。谢谢!
我使用htmlspecialchars($line);
它解决了这个问题。
重命名文件 阅读 让您的数据 改变他们 rerename文件:)
不隶属于 StackOverflow