簡體   English   中英

動態生成的PHP腳本無法解析; 直接代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM