此文件(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信息。
答案 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你的解析器很好,如果它回应了任何东西,你只是缺乏对语法的更多理解