【发布时间】:2012-12-29 12:17:03
【问题描述】:
我有一个简单的问题。如果我写了一个 php 文件,它会回显另一个正确的 php 语句,这会被执行吗?例如:
<html>
<body>
<?php echo "hello: "."<?php echo '1';?>"; ?>
</body>
</html>
这会产生输出:Hello: 1 吗?
我会说不,但如果我在 Apache 下运行它,“内部回声”会被“清理”为 <!--?php echo '1';?-->,这让我相信它可以。
谢谢!
【问题讨论】:
-
不,它没有,这只是另一个安全级别。
-
你的内部 "" 包含在另一个 PHP 块中,将被视为字符串,所以不,它不应该给你
Hello: 1,除非你会eval() 内部语句。我假设 Apache 清理了<?以避免与同样以<?开头的内联XML 内容混淆 -
您的 Web 服务器必须干扰您的 PHP 文件。字符串
"<?php echo '1';?>"就是这样,一个字符串 - 应该逐字打印到屏幕上(因为它包含尖括号,您需要查看源代码才能在浏览器中看到它)。 -
你的服务器一定是真的搞砸了... PHP 不执行自己看3v4l.org/kd7qf
-
谢谢大家。我认为@SaschaM78 的假设是有道理的;我不明白为什么 Apache 会清理这样的东西!