Вставка html в шаблон php

Serg_two

Новичок
Добрый всем вечер. Есть такой код для создания html страниц. Вопрос, как сделать шаблон $html более сложным? Имеется в виду, полностью разметку html с подключением стилей, дивами и т.д. Все писать внутри как то некрасиво.

<?php
// $id переменная берется из БД
$file = "pages/page".$id.".html";
$html = "<HTML>\n<HEAD\n<TITLE>TITLE</TITLE>\n</HEAD>\n<BODY>\n\n</BODY>\n</HTML>";
if (file_exists($file)) {
echo "Ошибка, страница с таким именем уже есть!";
}
else {
$handle = fopen($file,"w+");
fwrite($handle,$html);
fclose($handle);
echo "Page named ".$file." created!";
}
?>
 

Serg_two

Новичок
Я понимаю святую ярость многоуважаемых гуру. Но просто у меня проект, где нужен один шаблон (в котором буквально 2-3 абзаца html). Это не огромный портал.
Просто интересно понять принцип работы данного действия (создания шаблонов), вот и все.
Если совсем уж задел чьи то чувства, то прошу прощения ;)
 

Vladson

Сильнобухер
Хочу руками сделать! :D
Шаблонизация это не то что вы делаете, это то как вы думаете...

Вот это
$html = <<<HTML

HTML;
если очень хочеться руками ;)
более чем полный ответ, вам нужно не изобретать аналог, а только понять почему этот ответ вам подходит... (вы просто задали не тот вопрос на который хотели услышать ответ)
 

antson

Новичок
Партнер клуба
@Serg_two, второй способ использовать ob_функции

начать буферизацию
?>
пошла смесь html и вызов php

<?
$out = забрать_что_на_выводилось();
сохранить $out как файл.
 

antson

Новичок
Партнер клуба
@Serg_two, ну а то что ты сейчас пытаешься сделать попадает под разновидность

Генерация страниц при редактировании. Системы этого типа служат для редактирования страниц, которые при внесении изменений в содержание сайта создают набор статических страниц. При таком способе в жертву приносится интерактивность между посетителем и содержимым сайта.

https://ru.wikipedia.org/wiki/Система_управления_содержимым#.D0.A0.D0.B0.D0.B7.D0.BD.D0.BE.D0.B2.D0.B8.D0.B4.D0.BD.D0.BE.D1.81.D1.82.D0.B8
 

scorpion-ds

Новичок
Когда-то, мы в своей CMS использовали поиск и замену строк, для подстановок данных, позже это обросло неким подобием циклов и условий, нам этого вполне хватало. Smarty рассматривали (версия 2006 года), но мне он тогда не понравился или я попросту не понял его преимущества, уже не помню, сейчас я бы скорее всего использовал Twig для свой CMS.
 

Serg_two

Новичок
Всем спасибо за ответы! Все читал, обмозговывал. Как всегда, гуру оказались правы - все вышло не так просто, как казалось и вполне очевидно, что ничего особо умного у меня не получилось.
Но проект закончил, воспользовался подключаемым html парсером (для шаблона). Пытался сделать функцией ob_, однако она не подошла, так как выполнялся сразу скрипт sql (который был прописан в шаблонах моих).
Получилось коряво, теперь буду думать, как сделать лучше :)
 

Serg_two

Новичок
Все, отчитываюсь. Разобрался! И с heredoc (точнее с nowdoc, кавычки решают для вставки php), и с ob_ функциями!
Спасибо Antson большое! :cool:
 

WMix

герр M:)ller
Партнер клуба
@antson, ну вот научил говнокодить, шоб те "heredoc, точнее с nowdoc" прожект достался :)
 
Сверху