хитрый eval @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 4 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
gregzem Муж.
новый человек
2
Сообщения: 252
Зарегистрирован: 29.04.03
Заголовок сообщения: хитрый eval
Сообщение Добавлено: 27 Июль 2007, 13:29:33 
Хочется сделать так, чтобы в HTML шаблоне, лежащем во внешнем файле (БД, не суть) мог встречаться полноценный PHP код и при этом он в момент парсинга шаблона исполнялся по типу eval, а результат вставлялся вместо исходника.

То есть.

aaa.tpl
Код:
<html>
  <body>
<?
  for ($i = 0; $i < 3; $i++) {
?>
  тест
<?
  }
?>
   </body>
</html>


bbb.php

Код:
<?
  print "hello:<hr>";
  $processedContent = read_and_eval("aaa.tpl");
  print $processedContent;
  print "bye:<hr>";
?>


вопрос про функцию read_and_eval(), в которой читаем шаблон, парсим его, отрабатывает PHP, результат работы этой функции должен быть - строка:

Код:
<html>
<body>
  тест
  тест
  тест
</body>
</html>


ну и делаем дальше с шаблоном все, что захотим. Например, печатаем на экране.

У меня сразу "в лоб" решить проблему не удалось. То есть eval спотывается на первом же html не_php куске. Вынимать PHP код с помощью регулярных выражений из шаблона, обрабатывать его eval и замещать php код мне видится не очень удачным решением.

Есть у кого опыт решения подобной задачки?
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 27 Июль 2007, 17:15:38 
а че, require() уже отменили?

_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
gregzem Муж.
новый человек
2
Сообщения: 252
Зарегистрирован: 29.04.03
Сообщение Добавлено: 27 Июль 2007, 19:41:47 
А че, require умеет читать файл в переменную и при этом не выполнять сразу код?
gregzem Муж.
новый человек
2
Сообщения: 252
Зарегистрирован: 29.04.03
Сообщение Добавлено: 27 Июль 2007, 22:32:52 
Если бы все было так просто, я бы сюда не пришел :)

Данные (шаблоны страниц в CMS) вводит пользователь. Иногда он хочет, чтобы внутри шаблонов он смог написать кусок PHP кода, который выполнился бы до генерацией результирующей HTML страницы (подробнее как оно должно работать описано в первом посте).

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

Код:
<?
?>
html код
<?
?>


в этом случае regexp+eval замечательно решат задачу. Вот что делать в случае, когда, например, цикл разнесен в несколько "<? .. ?>", на вскидку не знаю. Может у кого родится мысль?
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 4 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100