Выполнение PHP кода

demiurger

Новичок
Выполнение PHP кода

Добрый вечер,
Заранее извините, аналогичные вопросы уже задавались, я просмотрел их - но не нашел ответа на свой вопрос.

Дело вот в чем. Пишу сейчас что-то вроде CMS, но очень очень упрощенную.

С заменой обычных свойств проблем не возникает, то есть
PHP:
<HTML> 
  <HEAD>
     <TITLE>{TITLE}<TITLE>
  </HEAD>
  <BODY bgcolor="{COLOR}">
Это делается так: получаю данный текст, заменяю {} на значения, через echo вывожу.

А проблемма вот в чем:
Например нужно вставить список последних новостей. Список этот выводится в news.php. Еслиб это был обычный пхп код я бы написал
PHP:
  include "news.php";
и все. А как мне быть если например есть вот такой шаблон:
PHP:
<HTML> 
  <HEAD>
     <TITLE>{TITLE}<TITLE>
  </HEAD>
  <BODY bgcolor="{COLOR}">
  <? include "news.php" ?>
и после замены его необходимо выполнить?

Как вариант, текст с уже замененными значениями записывается в файл, этот файл инклудится, а затем удаляется.

Есть ли еще варианты?

П.С. Возможно я вообще тут намудрил, и делаю неправильно

Заранее спасибо за любые советы.
 

Sergikus

Guest
Используй уже готовые решения. Для этих целей написанно кучу различных темплейт классов. Зачем изобретать велосипед..
 

demiurger

Новичок
Eval смотрел

Sergikus
ну у них же есть какой то принцип действия - он то мне и интересен
 

Sergikus

Guest
Можешь сходить на pear.php.net, скачать любой темплейт класс и посмотреть как он работает. Я не разбирался, но думаю, что там все через регулярные выражения делается.

Хотя с другой стороны, ты же заменяшь {} на переменные, можешь придумать свои спецсимволы для инклудов, и по тому же принципу заменять.
 

Фанат

oncle terrible
Команда форума
PHP:
<HTML> 
  <HEAD> 
     <TITLE><?=$TITLE?><TITLE> 
  </HEAD> 
  <BODY bgcolor="<?=$COLOR?>">
  <? include "news.php" ?>
 

demiurger

Новичок
спасибо

я могу придумать спецсимволы, но вот как потом этот код выполнять? Допустим в результате получилось
---код хтмл---
<? include "somefile.php" ?>
---код хтмл---

его же теперь ехом не выведешь

тогда нужно или сохранить его в файл и его инклудить, или еще как то...
 

demiurger

Новичок
Фанат

Объясни. Вот у тебя получился ПХП файл - но где то же мне нужно переменным значеня присвоить. А потом этот файл выполнить.

В моем случае: у меня файл обработчик, он парсит шаблон, заменяет, выводит, а у тебя?
 

Фанат

oncle terrible
Команда форума
а у меня просто include 'shablon.php';
и всё.
и никаких парсеров, никаких обработчиков.
ПХП - это и есть обработчик шаблонов. На самом деле.
 

demiurger

Новичок
Фанат
Нет не проблемма, мне хочется знать как это бы реализовали другие, без помощи сторонних template классов...
Спасибо
 

Sergikus

Guest
Для новостей должен быть отдельный темплейт, с переменными {}. Получаешь его ф-цией file_get_contents, парсишь переменные, а потом подключаешь к основному выводу.
 

Фанат

oncle terrible
Команда форума
переменные присвоить до инклюда, естественно
$COLOR='red';
$TITLE='title';
include 'shablon.php';
 

demiurger

Новичок
ну а где тогда переменным значения присваиваются? Объясни поподробней если не трудно

-~{}~ 13.08.05 17:22:

опоздал

Да но это если статика - а если у значения в базе, в зависимости от страницы хранятся?

Хотя можно вставить ф-ию типа ПолучитьПеременные и все....
надо подумать.
Спасибо большое
 

Sergikus

Guest
На самом деле Фанат прав. ПХП - это и есть обработчик, поэтому я тоже не вижу смысла во всем этом. Это только забирает время и ресурсы сервера.
 

Фанат

oncle terrible
Команда форума
да где хочешь присваивай!

-~{}~ 13.08.05 17:23:

а если у значения в базе, в зависимости от страницы хранятся?
и что? В базе - не значения?
вставить ф-ию типа ПолучитьПеременные
какая ещё функция? зачем?
что - нельзя без функции просто получить?
 

demiurger

Новичок
Получаешь его ф-цией file_get_contents, парсишь переменные, а потом подключаешь к основному выводу.

Вот этот шаг меня и интересует...
Ничего я подумаю, потестирую, если не получится - я вам напишу, ок?
 

Фанат

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

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

demiurger

Новичок
какая ещё функция? зачем?
что - нельзя без функции просто получить?

из базы? без ф-ии? ну как минимум mysql_query я думаю...

-~{}~ 13.08.05 17:26:

:)))) все я пошел
Спасибо Фанат ) Буду думать
 

Фанат

oncle terrible
Команда форума
ты, по-моему, бредишь.
берём, читаем твои слова:
а если у значения в базе, в зависимости от страницы хранятся?

Хотя можно вставить ф-ию типа ПолучитьПеременные и все....
А ЧТО, ЕСЛИ У ТЕБЯ ПЕРЕМЕННЫЕ В ТВОИх {} - ИХ ИЗ БАЗЫ ДОСТАВАТЬ НЕ НАДО?!
Если у тебя переменные в кучерявых скобочках, то ты не задумываешься, когда их определять? А в чём разница-то?!!!
 
Сверху