встраивание php в html

#php #html

#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 ?>
  

Комментарии:

1. Это очень запутанный вопрос. Вы действительно можете поместить этот фрагмент в PHP-файл на сервере с интерпретатором PHP, однако он не будет иметь никаких видимых результатов как есть

2. @Simon. Глядя на вашу историю вопроса, кажется, вы знаете, как работает php, так что же, черт возьми, вы имеете в виду?

3. Это верно. Вы должны echo заполнить (html), иначе вы ничего не увидите в своем браузере, кроме сообщений об ошибках.

4. извините, я не думаю, что объяснил это должным образом. пожалуйста, обратитесь к моему измененному вопросу

5. Я хотел бы поместить приведенную выше инструкцию php в нижней части этого HTML-кода. И что вам мешает это сделать?

Ответ №1:

Если в нем есть php-код, то это больше не HTML.

Вы должны назвать это .php или .phtml.

PHP генерирует или выводит html.

У вас может быть чистый html в php-скриптах (вне <?php ?> тегов), но не наоборот (т. Е. никакого php-кода в обычных HTML-файлах).

Если вы хотите добавить в него некоторую логику (PHP-код), вам нужно, чтобы он был проанализирован веб-сервером, который, в свою очередь, сгенерирует html.

Ответ №2:

 <!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, прежде чем вы сможете начать добавлять к ней «дополнительные». Затем все, что вам нужно сделать, это echo $message.

Комментарии:

1. Это php-файл. однако я хочу поместить вывод инструкции if в html. т. е. отобразить «Дополнительно: — ЗНАЧЕНИЕ»

2. Если вы хотите отображать материалы из PHP, вам нужен echo или print() функция.

3. Я воспринял вопрос как «как я могу поместить PHP в файл HMTL». Момент.

4. Правильно, я просто внедряю это сейчас, чтобы проверить

Ответ №3:

Да, вы можете, однако это не самый лучший способ сделать это. Вы должны выбрать модель Model-View-Controller. Это отделяет HTML-код от фактического кода, который выполняет обработку. Многие фреймворки PHP делают это. (Хотя лично я нахожу их слишком неуклюжими и написал свой собственный)

Кроме того, встраивание 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 обычно очень ограничивают то, что вы можете делать.

Ответ №4:

Да, вы можете сделать то, о чем просите. Убедитесь, что расширение распознается интерпретатором 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";
    } 
}
?>