выполнить код который в переменной

iceman

говнокодер
выполнить код который в переменной

в переменной хранится html код со вставками php

чето я не могу придумать как этот код исполнить... раньше создавал временный фаил .php и подключал его через require, щас требование чтобы не было этого файла...

ну я всю обработку вывожу через echo и отлавливаю через ob_start(); ob_get_clean();

PS. пишу шаблонизатор (вернее переделываю свой старый) и хочу чтобы он отдавал парсированный фаил классу представления, который сам будет решать что с ним делать...
 

Angerslave

Новичок
http://www.google.ru/search?q=php+%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D1%8C+%D0%BA%D0%BE%D0%B4+%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9+%D0%B2+%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9&ie=utf-8&oe=utf-8
В первой ссылке нашёл бы решение.
 

BigWindow

Новичок
Angerslave, через eval что-ли?

-~{}~ 08.08.08 10:44:

iceman, просто. Из шаблона в php-файл, а его уже потом инклудил. Все работает и очень даже хорошо. :)
 

iceman

говнокодер
у меня так было, но щас класс шаблонизатора должен только парсировать а не выводить. и чтобы не было параметра пути для временного файла

-~{}~ 08.08.08 10:50:

Angerslave
чето я не вижу там решения...
 

BigWindow

Новичок
Автор оригинала: iceman
у меня так было, но щас класс шаблонизатора должен только парсировать а не выводить. и чтобы не было параметра пути для временного файла
Я не понял. У тебя не будет компилируемого шаблона?
То есть напрямую: шаблон html - > вывод ? Так что-ли?
 

iceman

говнокодер
дело шаблонизатора это парсировать (либо скомпилировать) фаил, и передать скомпелированный контент обратно классу представления, который сам решает выводить контент или нет
 

BigWindow

Новичок
Автор оригинала: iceman
дело шаблонизатора это парсировать (либо скомпилировать) фаил, и передать скомпелированный контент обратно классу представления, который сам решает выводить контент или нет
Понятно. То есть ты хочешь, чтобы каждый раз проделывалась одна и таже работа по парсингу шаблона?

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

iceman

говнокодер
с шаблонами работает класс Представление. и ему плювать парсируется этот фаил или нет, если ему задан экземпляр класса парсера, то он его пропарсирует, если нет то продолджит выполнение без парсирования.

а кешировать ли данные я так думаю должен определить сам программист который использует мои библиотеки...

так сказать я хочу разограничить полномочия и задачи шаблонизатора на отдельные независиющие части

-~{}~ 08.08.08 11:01:

но времени на реализацию полноценного парсера (или даже компилятора) нету...
 

BigWindow

Новичок
Автор оригинала: iceman
но времени на реализацию полноценного парсера (или даже компилятора) нету...
Коронная фраза: используй Смарти!

Кстати, несмотря на то, что я написал свой шаблонизатор, я использую смарти. Никогда его не брошу, потому что он хороший! :D
 

iceman

говнокодер
пишу коммерческий проект... и мне хватает моего, простенького...
 

Страшный Злодей

Бывший член клуба (достало хамство).
iceman
в переменной хранится html код со вставками php
От такого решения нельзя отказаться?
Лучше просто html-шаблон созать и пихать туда метки на исполнение кода, а-ля смарти:

<html>
<head></head>
<body>
порожняк
{{code}}
порожняк
</body>
</html>

дальше разбирать файл и инклюдить нужный код, вывод также в ob_get_contents(). Ну или eval тогда...
 

iceman

говнокодер
Страшный Злодей
ну я его давно писал... просто хотел его подогнать под свой "фреймворк"
 

bgm

&nbsp;
iceman

PHP:
$title = "Title";
$body = "Body";
$s="<div><p><?php echo $title; ?></p><p><?=$body;?></p></div>";
eval("?>".$s);
 
Сверху