2012-03-12 69 views
0

为什么下面的代码显示来自msg.php的php代码?在网站上查看PHP代码?

$flag = file('msg.php'); 
$content = ""; 
foreach ($flag as $value) { 
    $content .= $value; 
} 
echo $content; 

有没有办法阻止它显示PHP代码?

+6

你想完成什么? – Cfreak 2012-03-12 21:29:00

回答

4

您将其输出为文本echo并用file读取它们,两者都不会执行任何PHP。您的示例可以替换为:

require 'msg.php'; 

并且一切都将正常工作。

+0

@zerkms:不可以。文件中可能存在语法错误,该错误是通过CLi和重定向的STDERR执行的,该错误会在接收到突变并抹掉99%人口的输出时创建病毒。 – Ryan 2012-03-12 21:30:38

+0

那么,除了所有那些(我们不知道),至少'$ flag'没有设置您之前设置的建议。 – hakre 2012-03-12 21:32:13

+0

@minitech:哦,我误解了你的答案,“用'require'替换'file()'”,对不起 – zerkms 2012-03-12 21:32:42

0

删除最后的echoecho在屏幕上打印内容。

-1

您可能没有<?php ?>标签包装您的代码。如果你这样做,那么PHP没有安装在你的服务器上。

1

这里有一些事情要检查:

  • 你有包裹在<?php ?>标签的代码?
  • 文件名以.php结尾吗?

如果这两种情况都是这样,您的服务器可能没有设置为正确处理PHP。

msg.php的内容又是什么?如果它包含php代码,那么可能是获取输出的内容,因为您只是阅读它,然后在没有运行解释器的情况下将其回显。

1

您应该为msg.php中的$flag指定值并包含该文件。

include 'msg.php' 
0

如果你表示文件msg.php的内容有PHP代码,这,这是什么显示,那是因为你做的仅仅是。把PHP作为文本。

PHP代码被视为文本,因为它尚未被服务器处理。您将不得不通过查找PHP标签的打开和关闭来过滤掉PHP,但是我怀疑您希望代码在需要包含该文件的情况下执行。