Как я могу эхо HTML в PHP?

Я хочу условно выводить HTML-код для создания страницы, так что это самый простой способ эхо-эпохировать многострочные фрагменты HTML в PHP 4+? Нужно ли использовать шаблон, такой как Smarty?

echo '<html>', "\n"; // I'm sure there's a better way!
echo '<head>', "\n";
echo '</head>', "\n";
echo '<body>', "\n";
echo '</body>', "\n";
echo '</html>', "\n";
Комментарии к вопросу (3)
Решение

Есть несколько способов эхо-сигналы HTML в PHP

1. Между тегами PHP

<?php if(condition){ ?>

<?php } ?>

2. В эхо

if(condition){
     echo "HTML here";
}

С echos, если вы хотите использовать двойные кавычки в своем HTML, вы должны использовать эхо с одинарной кавычкой, как это:

echo '<input type="text">';

Или вы можете избежать их так:

echo "<input type=\"text\">";

3. Heredocs

4. Nowdocs (по состоянию на PHP 5.3.0)

Template manors используются для использования PHP в документах, которые содержат в основном HTML. Фактически, первоначальная цель PHP состояла в том, чтобы быть языком шаблонов. Вот почему с PHP вы можете использовать такие вещи, как короткие теги, для эхо-переменных (например,. <?= $ someVariable?>).

Есть и другие шаблоны (такие как Smarty, Twig и т. Д.).) которые делают синтаксис еще более кратким (например,. {someVariable}}).

Основным преимуществом использования механизма шаблонов является сохранение дизайна (Presentation Logic) отдельно от кодирования (Business Logic). Это также делает код более чистым и его легче поддерживать в долгосрочной перспективе.

Если у вас есть еще вопросы, не стесняйтесь оставлять комментарии. Дополнительное чтение доступно по этим вопросам в Документация PHP.

Боже, благослови!


ПРИМЕЧАНИЕ: PHP короткие теги < ;?и ?>не рекомендуется, потому что они доступны только в том случае, если они включены в файловую директиву конфигурации php.ini short_open_tag или если PHP был настроен с параметром --enable-short-tags. Они доступны, независимо от настроек от 5.4 и далее.

Комментарии (10)

попробуй как это:


$variable = 
Комментарии (6)

Вы можете использовать альтернативный синтаксис альтернативного синтаксиса для структур управления и вычеркивать php:

<?php if ($something): ?>

    <?=$shortButControversialWayOfPrintingAVariable ?>
    <?php /* A comment not visible in the HTML but is a bit of a pain to write */ ?>
<?php else: ?>

<?php endif; ?>
Комментарии (2)

В основном вы можете поместить HTML в любом месте за пределами тегов PHP. Также очень полезно выполнить всю необходимую обработку данных перед отображением любых данных, чтобы разделить логику и представление.

Сам дисплей данных может находиться внизу того же файла PHP, или вы можете включить отдельный файл PHP, состоящий в основном из HTML

Я предпочитаю этот компактный стиль

<?php
    /* do your processing here */
?>



    <?=$title?>


    <?php foreach ( $something as $item ) : ?>
        <p><?=$item?></p>
    <?php endforeach; ?>

Примечание: вам может потребоваться использовать <?php echo $ var ; ?>вместо<?= $ вар?>в зависимости от вашей настройки PHP.

Комментарии (0)

Я неравнодушен к этому стилю:



      Definitely X
      Totally not X

Я использую теги в стиле ASP, да. Смешивание PHP и HTML выглядит очень читаемым для моих глаз. Хитрость заключается в том, чтобы получить маркеры ` `.

Комментарии (2)

Другой подход - поместить HTML в отдельный файл и пометить область для изменения заполнителем [[content]] в этом случае. (Вы также можете использовать sprintf вместо str_replace.)

$page = 'hello world';
$content = file_get_contents('html/welcome.html');
$pagecontent = str_replace('[[content]]',$content,$page);
echo($pagecontent);

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

Может показаться странным выписать php, поймать его, затем написать снова, но это означает, что вы можете выполнять все виды форматирования (Heredocs и т. Д.), & протестируйте его правильно, не мешая шаблону страницы. (Joomla CMS делает это таким образом, кстати) т.е.:

<?php
ob_start();
echo('hello world');
$php_output = ob_get_contents();
ob_end_clean();
?>
<h1> My Template page says </h1>
<?php
echo($php_output );
?>
<hr>
template footer
Комментарии (0)

$enter_string = '<textarea style="color:#FF0000;" name="message">EXAMPLE
Комментарии (0)

Попробуйте это может помочь вам.......


<?php
echo 
Комментарии (0)

В дополнение к ответу Chris B, если вам все равно нужно использовать «echo», все равно хотите, чтобы он был простым и структурированным и не хотел спамить код с помощью <?php материал ; ?>, вы можете использовать синтаксис ниже.

Например, вы хотите отобразить изображения галереи:

foreach($images as $image)
{
    echo
    '<li>',
        '<a href="', site_url(), 'images/', $image['name'], '">',
            '![', $image['description'], '](', site_url(), 'images/thumbs/', $image['filename'], ')',
        '</a>',
    '</li>';
}

Echo принимает несколько параметров, поэтому при хорошем вдавливании выглядит довольно хорошо. Также использование echo с параметрами более эффективно, чем конкатенация.

Комментарии (0)

не повторяйте HTML

если вы хотите использовать

<?php echo "<h1>  $title; </h1>"; ?>

Вы должны делать это:

<h1><?= $title;?></h1>
Комментарии (0)

Просто используйте функцию print для эхо-текста в файле PHP следующим образом

<?php

  print('

    <div class="wrap">

      <span class="textClass">TESTING</span>

    </div>

  ')

?>
Комментарии (0)
echo '




';

или

echo "\n\n\n\n";
Комментарии (0)

Вот как я это делаю:

<?php if($contition == true){ ?>
         <input type="text" value="<?php echo $value_stored_in_php_variable; ?>" />
<?php }else{ ?>
         <p>No input here </p>
<?php } ?>
Комментарии (0)