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

Форум PHP

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

 

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

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

тема: Интерпритатор команд
 
 автор: DIM@   (06.06.2008 в 15:13)   письмо автору
 
 

Возникла необходимость расширить сайт (выводимые статьи) некими командами типа вывода поля базы данных, даты, имени пользователя, иногда выводом результата по условию, ну в общем всякими мелочами.
Кто нибудь сталкивался или писал собственные интерпритаторы команд, поделитесь мыслями, кодами и чем не жалко :)
Я в принципе что-то накалякал, но вот про правильность и тем-более ..... говорить не приходится, в общем топорная работа :)

   
 
 автор: OLi   (06.06.2008 в 20:59)   письмо автору
 
   для: DIM@   (06.06.2008 в 15:13)
 

Подробней можешь объяснить что выводить надо-может и сталкивался

   
 
 автор: DIM@   (07.06.2008 в 00:31)   письмо автору
 
   для: OLi   (06.06.2008 в 20:59)
 

Ну напртмер в тексте статьи есть необходимость вывести дополнительную информацию, не важно какую, ну например список фотографий пренадлежащих (имеющих ссылку на эту статью) я внутьи статьи, в том месте где это нужно вывести пишу команду типа:

{ВЫВЕСТИСПИСОККАРТИНОКСТАТЬИ(%ID%,4,7,'images.idarticle')}

и эта команда заменяется списком фотографий из таблицы 'images', 'idarticle' которой равна %ID%, по 4 фотографии в строке 7 строк, ну типа этого.

С односложными командами у меня проблем в принципе нет, а вот с формированием вложенных возникает проблема, например:

{ПОЛЕБД('name_ukaz.Name') ПЕРЕМЕННАЯ('ZAGLAVIE') // ПОЛЕБД('source_ukaz.Name') ЕСЛИ(ПУСТО(ПОЛЕБД('geo_ukaz.Name')),'',ПОЛЕБД('geo_ukaz.Name')).- ПЕРЕМЕННАЯ('YEAR').- ПЕРЕМЕННАЯ('NOMER').- ПЕРЕМЕННАЯ('PAGECOUNT') <br><i> ПЕРЕМЕННАЯ('ANNOTACION')</i>}

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

   
 
 автор: AcidTrash   (07.06.2008 в 00:36)   письмо автору
 
   для: DIM@   (07.06.2008 в 00:31)
 

>{ВЫВЕСТИСПИСОККАРТИНОКСТАТЬИ(%ID%,4,7,'images.idarticle')}
Вы это в рельном типе написали?

Что-то мне напоминает программирование 1С.

   
 
 автор: DIM@   (07.06.2008 в 00:40)   письмо автору
 
   для: AcidTrash   (07.06.2008 в 00:36)
 

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

Скорее всего название команд на русском языке :)

Я это сделал для людей, которые далеки от программирования и английсого языка :)

   
 
 автор: mihdan   (07.06.2008 в 00:44)   письмо автору
 
   для: DIM@   (06.06.2008 в 15:13)
 

str_replace(), preg_replace(), eval()

   
 
 автор: DIM@   (07.06.2008 в 00:49)   письмо автору
 
   для: mihdan   (07.06.2008 в 00:44)
 

Если бы все было так просто :)

   
 
 автор: mihdan   (07.06.2008 в 10:13)   письмо автору
 
   для: DIM@   (07.06.2008 в 00:49)
 

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

   
 
 автор: DIM@   (07.06.2008 в 12:20)   письмо автору
 
   для: mihdan   (07.06.2008 в 10:13)
 

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

   
Rambler's Top100
вверх

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