在html中嵌入php

时间:2011-05-04 01:29:45

标签: php html

是否可以将其嵌入到html

if (empty($_POST['extras'])) {
        $message .="<br /> No extras selected <br />";
        } else { 
        foreach($_POST['extras'] as $extra)
        {
          $message .="<br />Extras: ".$extra."";

        } 
        }

我想将上面的php语句放在这个html代码的底部。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Booking System</title>
<link rel="stylesheet" href="css/bs-admin.css" type="text/css" />
</head>
<body>
<noscript>
    <div class="js_error">Please enable JavaScript or upgrade to better <a href="http://www.mozilla.com/en-US/firefox/upgrade.html" target="_blank">browser</a></div>
</noscript>
<div id="index">
<h1>Thank you for your reservation!</h1>


<p>
<h3>Your Booking is as follows:</h3>
<p>Dear <b><?php echo $custInf[0] ?></b>,
<p>You have Booked: <?php echo $eventInf[0] ?>
<p>Booking Date: <?php echo $eventInf[2] ?>
<p>Booking descriptiong: <?php echo $eventInf[1] ?>
<p>Number of machines booked: <?php echo $qty ?>
<p>Street: <?php echo $comments ?> 
<p>Suburb: <?php echo $suburb ?>
<p>Postcode: <?php echo $postcode ?>
<p>Dropoff: <?php echo $dropoff ?>
<p>Duraton: <?php echo $duration ?>

4 个答案:

答案 0 :(得分:4)

如果它有PHP代码,那么它就不再是HTML了。

你必须把它称为.php或.phtml。

PHP 生成输出 html。

可以在.php脚本中(<?php ?>标记之外)纯html ,但不是相反(即常规的.html文件中没有php代码。)

如果你想在其中添加一些逻辑(PHP代码),你需要通过网络服务器进行解析,然后再生成html。

答案 1 :(得分:1)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>Booking System</title>
        <link rel="stylesheet" href="css/bs-admin.css" type="text/css" />
    </head>
    <body>
        <noscript>
             <div class="js_error">Please enable JavaScript or upgrade to better <a href="http://www.mozilla.com/en-US/firefox/upgrade.html" target="_blank">browser</a></div>
        </noscript>
        <div id="index">
            <h1>Thank you for your reservation!</h1>
            <div>
                <h3>Your Booking is as follows:</h3>
                <p>Dear <b><?php echo $custInf[0]; ?></b>,</p>
                <p>You have Booked: <?php echo $eventInf[0]; ?></p>
                <p>Booking Date: <?php echo $eventInf[2]; ?></p>
                <p>Booking descriptiong: <?php echo $eventInf[1]; ?></p>
                <p>Number of machines booked: <?php echo $qty; ?></p>
                <p>Street: <?php echo $comments; ?> </p>
                <p>Suburb: <?php echo $suburb; ?></p>
                <p>Postcode: <?php echo $postcode ?></p>
                <p>Dropoff: <?php echo $dropoff; ?></p>
                <p>Duraton: <?php echo $duration; ?></p>
            </div>

            <?php
                $message = "";

                if (empty($_POST['extras'])) $message .="<br /> No extras selected <br />";
                else
                {
                    foreach($_POST['extras'] as $extra)
                    {
                        $message .="<br />Extras: ".$extra;
                    } 
                }

                echo $message;
            ?>
        </div>
    </body>
</html>

我认为您需要先创建一个空变量$ message,然后才能开始向其添加“extras”。那么您需要做的只是echo $ message。

答案 2 :(得分:0)

是的,你可以,但这不是一个好方法。您应该使用模型 - 视图 - 控制器模型。它将HTML代码与进行处理的实际代码分开。许多PHP Framework都是这样做的。 (虽然我个人觉得他们太笨重而且写了我自己的)

此外,将HTML嵌入到PHP中是不好的,因为代码应该尽可能地与HTML分开。

视图和控制器示例(来自我的框架):

控制器:

class Controllers extends BaseController{   
    function index($args=array()){

        // process data
        $this->render('index', array('data1'=>$data));
    }
}

查看:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>My site</title>
</head>
<body>
<h1><?php echo $page->data1; // echos out $data from the view ?></h1>
</body>
</html>

这比将PHP嵌入到HTML中的模型更清晰,反之亦然。

看看框架,它们通常非常有用,尽管PHP框架通常对你能做的事情有很大限制。

答案 3 :(得分:0)

是的,你可以做你想要的。确保扩展程序可由php解释器识别(通常为.php)

如果您需要快速入侵,这是可以的。但对于其他任何事情,请考虑使用某种模板语言。这一点非常重要,因为您希望将自己的逻辑从显示中分离出来,以保证自己和将来处理代码的其他开发人员的理智。

编辑:哦,也很重要。在不清理数据的情况下,不要以这种方式使用$ _POST。 XSS注射已经成熟。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Booking System</title>
<link rel="stylesheet" href="css/bs-admin.css" type="text/css" />
</head>
<body>
<noscript>
    <div class="js_error">Please enable JavaScript or upgrade to better <a href="http://www.mozilla.com/en-US/firefox/upgrade.html" target="_blank">browser</a></div>
</noscript>
<div id="index">
<h1>Thank you for your reservation!</h1>

<!--- bunch of stuff omitted here -->

<?php
if (empty($_POST['extras'])) {
    echo "<br /> No extras selected <br />\n";
} else { 
    foreach($_POST['extras'] as $extra)
    {
        echo "<br />Extras: ".$extra."\n";
    } 
}
?>