Вывод данных в html

409
10 февраля 2017, 06:17

Допустим у нас имеется html страницы (вывод тела):

<div>Добро пожаловать $name.</div>

Пока опустим правила вывода текста, с использованием htmlspecialchars и прочих правил... Ибо вопрос в механике.

Наполнять html страницу таким содержимым не есть хорошо, да и не совсем удобно. По сути - нужно избавляться от php кода в html, как я понял.

Если я так же правильно понял - подобными делами занимается парсер. Можно и через DOM искать, либо через регулярные выражения...

Я ищу немного другой подход, возможно он и есть. К примеру:

<!-- START: text -->
<div>Добро пожаловать {name}.</div>
<!-- END: text -->

В свою очередь {name} является тем самым именем пользователя, которое необходимо вывести на экран, используя методы вывода в php.

Либо, если вдруг у нас есть таблица, то будем иметь подобный вид:

<!-- START: text -->
<div>
    <span>Вывод {text.name}</span>
    <!-- START: table-->
    <table>
        <tr>
            <th>Имя</th>
            <th>Фамилия</th>
        </tr>
        <!-- START: row-->
        <tr>
            <td>{table.firstname}</td>
            <td>{table.lastname}</td>
        </tr>
        <!-- END: row-->
    </table>
    <!-- END: table-->
</div>
<!-- END: text -->

В данной конструкции мы уже вывод храним в массиве и имеем иерархическую структуру вывода - выводим строки таблицы в цикле. В случае, если нам нужно вывести 2 одинаковые таблицы на страницы - будет отсутствие конфликта в подобном случае.

В связи с вышеперечисленным - вопрос: есть ли подобные парсеры, производящие вывод данных html в подобном виде? Написать можно, алгоритм есть, но смысл придумывать велосипед?:)

Answer 1

То о чем вы пишите называется шаблонизатором. Он бывает и в js и в php и в других языках.

Есть подход в разработке приложений называется MVC. В нем принято разделять приложения. На модель(данные), контроллер(логика) и представление и вот за представления и отвечают разного вида шаблонизаторы. Они призваны убрать влияние php кода в шаблонах сайта.

Вот шаблонизаторы например для php

  • https://github.com/fenom-template/fenom
  • http://twig.sensiolabs.org/
  • https://laravel.com/docs/5.4/blade

Вот на js

  • http://handlebarsjs.com/
  • http://mustache.github.io/
  • http://leonidas.github.io/transparency/

Статья на хабре про шаблонизаторы в php.

READ ALSO
Как передать данные в скрипт PHP из HTML?

Как передать данные в скрипт PHP из HTML?

Вопрос следующий имеется страничка на HTML в ней есть поля для логина и пароля для подключения к БДКак передать вводимые данные в скрипт?

322
Голосование modx revo

Голосование modx revo

Подскажите, делаю голосование

339
Как упростить многочисленные else if?

Как упростить многочисленные else if?

Есть динамические данные от пользователя, которые на сервере необходимо проверять на вхождение в тот или иной диапазон и в зависимости от этого...

259