我于以下特征模拟绊倒:

$处理=的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文件:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top