动态生成的PHP脚本无法解析;直接代码

时间:2016-12-12 04:03:19

标签: php apache

此文件(test.php)按预期运行PHP信息模糊:

<html>
<body>
<?php  
   phpinfo();
?>
</body>
</html>

但是,此代码在保存为test.php时也会生成一个空白屏幕:

<?php
echo "<html><body><?php phpinfo(); ?></body></html>";
?>

此处的源代码在浏览器中查看时显示:

 <html><body><?php phpinfo(); ?></body></html>

...所以几乎可以肯定的是,我如何设置服务器来解析东西......

我在Windows 10上运行PHP版本5.6.28和Apache 2.4的本地主机。除了新手设置说明here之外,我还没有更改许多默认设置。我有:

LoadModule php5_module "c:/php/php5apache2_4.dll"
AddType application/x-httpd-php .php

...已经在httpd.conf文件中。

test.php肯定有一个.php扩展名,但我确实看到this idea,所以我添加了这一行:

AddHandler php-script .html

...到httpd.conf文件。我还补充道:

AddType  application/x-httpd-php-source  .phps
AddType text.html .php

这里建议:Apache is downloading php files instead of displaying them

我错过了一些明显的东西吗?

更新:通过将上述行添加到httpd.conf文件后进行修改,test.php实际上会生成一些未转义的字符?

&#34 ;; ?&GT;

而不是完全空白的屏幕,或预期的phpinfo信息。

2 个答案:

答案 0 :(得分:1)

根据您在上面发布的评论,您需要查看concatenate输出。使用您的示例,您可以使用:

echo '<form id="option-listing-form" method="post" action="' . htmlspecialchars($_SERVER['PHP_SELF']) . '"> ';

希望这会有所帮助:)

答案 1 :(得分:0)

您不需要HTML标记标记

<?php
phpinfo();
?>

要解决你的错误

echo "<html><body>";
phpinfo();
echo "</body></html>";

phpinfo()返回bool(即; true或false),它会动态输出,无需回显。

PS你的解析器很好,如果它回应了任何东西,你只是缺乏对语法的更多理解