Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Правильно ли я делаю (шаблонизатор)?
 
 автор: DEM   (16.11.2009 в 04:19)   письмо автору
 
 

Проблема вот в чём.
Достал из строки элементы вида {$text|filter}. И теперь смотрю, если filter равен, к примеру, toupper, то заменяю {$text|filter} на strtoupper($text); в большом регистре. У меня есть список всех фильтров в массиве и я просто прохожу по всем элементам которые подходят под моё рег.выражение ({$varname|filter}) и, если такой фильтр у меня есть я заменяю эту переменную на изменённую с помощью str_replace();
Правильный ли мой подход или это делается как-то по другому? К примеру функция будет иметь ввиду, как и в РНР, а потом строка обрабатывается этим фильтром с помощью eval() (который тормознутый)?

ЗЫ. да-да, пишу свой шаблонизатор :)

  Ответить  
 
 автор: cheops   (19.11.2009 в 15:43)   письмо автору
 
   для: DEM   (16.11.2009 в 04:19)
 

Нет eval() - это плохая идея, вы все делаете правильно.

  Ответить  
 
 автор: DEM   (21.11.2009 в 08:04)   письмо автору
 
   для: cheops   (19.11.2009 в 15:43)
 

а то, что я прохожу сначало все переменные (хранятся в массиве)в цикле и потом смотрю с помощью рег.выражений:
#\{\$'.$parametr.'(.*)(\|{1})(.+)\}#
Где $parametr - название переменой.

Или лучше сделать #\{\$(.*)(\|{1})(.+)\}# и уже потом смотреть, есть ли такая переменная и уже обрабатывать? Что будет быстрее?

  Ответить  
 
 автор: cheops   (21.11.2009 в 12:29)   письмо автору
 
   для: DEM   (21.11.2009 в 08:04)
 

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

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования