php 无法在 html 文件内运行但在外部运行

php not functioning inside html file but works outside

我一直在关注 php 教程 here

代码

这是我的 html 文件:

    <!DOCTYPE html>
    <html>
    <head>

        <link rel=”stylesheet” type=”text/css” href=”style.css”>

        <form action="postForm.php" method="post">

        <TextArea name="microBlog" id="microBlog" cols="30" rows=“10"></TextArea>  

        <input type="submit">          

        </form>

    </head>

    <body>

        <?php          

            require_once 'meekrodb.2.3.class.php';          
            DB::$user = 'root';          
            DB::$password = '';          
            DB::$dbName = 'MicroBlog';          
            $results = DB::query("SELECT post FROM MicroBlog");          
            foreach ($results as $row){                  

                echo "<div class='microBlog'>" . $row['post'] . "</div>";          
            }          

        ?>  


    </body>

    </html>

这会产生以下结果:

但是,如果我将 php 代码复制到一个新的 postForm.php 文件中并单击 "Submit"(如您所见,操作是 postForm.php),它就会起作用。

我的空白屏幕有 3 个字(来自数据库)。

问题是这是一个全新的空白页,我不想要那个。

问题

为什么代码在 html 文件外有效,但在 html 文件内无效。为什么我在 html 文件中得到 ".row['post']."";} ?> 但当 php 存在于它自己的 php 文件中时我得到完美的输出?

代码明明没有问题,那会是什么?

这让我很困惑。感谢您的任何回答。

将文件扩展名 .html 更改为 .php.phtml。它会解决你的问题。

您正在 html 文件中编写 php 代码。 html 文件不评估 php code.change 文件的扩展名 .php 而不是 .html 通过这样做,您可以在该文件中同时编写 html 和 php 代码。

原因: 1. html文件不支持其中的php脚本,因此写入的任何内容都不会被执行,只会被处理作为 html 标记。

解法: 1. 只需将.html文件保存为.php文件即可!(非常简单)。例如,如果您的文件名为index.html,只需将其保存为[=24] =] 里面的所有 php 脚本都会被执行。

index.php:

<!DOCTYPE html>
    <html>
    <head>

        <link rel=”stylesheet” type=”text/css” href=”style.css”>

        <form action="postForm.php" method="post">

        <textArea name="microBlog" id="microBlog" cols="30" rows=“10"></textArea>  

        <input type="submit">          

        </form>

    </head>

    <body>

        <?php          

            require_once 'meekrodb.2.3.class.php';          
            DB::$user = 'root';          
            DB::$password = '';          
            DB::$dbName = 'MicroBlog';          
            $results = DB::query("SELECT post FROM MicroBlog");          
            foreach ($results as $row){                  

                echo "<div class='microBlog'>" . $row['post'] . "</div>";          
            }          

        ?>  


    </body>

    </html>