[英]Dynamically-generated PHP script doesn't parse; straight-code does
該文件( test.php
)按預期運行PHP信息blurb:
<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的本地主機,除了此處的新手設置說明外,我沒有更改許多默認值。 我有:
LoadModule php5_module "c:/php/php5apache2_4.dll"
AddType application/x-httpd-php .php
...已經在httpd.conf
文件中。
test.php
擴展名肯定已經是.php,但是我確實看到了這個主意 ,因此我添加了以下代碼:
AddHandler php-script .html
...到httpd.conf
文件中。 我還補充說:
AddType application/x-httpd-php-source .phps
AddType text.html .php
在這里建議: Apache正在下載php文件,而不是顯示它們
我是否缺少明顯的東西?
更新:在將上述幾行添加到httpd.conf
文件中之后, test.php
實際上生成了一些未轉義的字符嗎?
“;?>
而不是完全空白的屏幕或預期的phpinfo信息。
通過上面發布的評論,您正在尋找連接輸出的方法。 使用您的示例,您可以使用:
echo '<form id="option-listing-form" method="post" action="' . htmlspecialchars($_SERVER['PHP_SELF']) . '"> ';
希望這可以幫助 :)
您不需要HTML標記標簽
<?php
phpinfo();
?>
為了糾正你的錯誤
echo "<html><body>";
phpinfo();
echo "</body></html>";
phpinfo()
返回bool(即true或false),它會即時輸出,無需回顯它。
PS您的解析器很好,如果它回顯了任何東西,您只是對語法缺乏深入的了解
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.