Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка модулей испольуемых в шаблоне 
:(
    Опции темы
Elfet
Дата 6.3.2006, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Есть вот такой вот шаблон:
Код

<!--WEL.HELLO-->
<!--WEL.STAT-->
<!--WEL.NEWS-->


Нужно по этому шаблону подключить файлы (если такие есть)
/class/wel_hello.php
/class/wel_stat.php
/class/wel_news.php

Код

while(GET)
{
      if( file_exists( $file ) ) 
      {
             require_once( ROOT_PATH."sources/class/".$file );
             $runme = new $file_class();
             $runme->ipsclass =& $ipsclass;
             $runme->auto_run();
      }
}


Вот этим GET`ом нужно как-то получить имена всех подключаймых модулей. Прошу помощи!

Это сообщение отредактировал(а) Elfet - 6.3.2006, 20:38


--------------------
PM MAIL WWW Skype   Вверх
Elfet
Дата 9.4.2006, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Помогите, пожалуйста составить регулярку! smile Мне нужно составить массив: array( HELLO, STAT, NEWS )


--------------------
PM MAIL WWW Skype   Вверх
Ciber SLasH
Дата 9.4.2006, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 3
Всего: 67



Не понял, а какие параметры отсылаются GET-ом и каким скриптом и как?
PM   Вверх
Elfet
Дата 9.4.2006, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Да, это не то smile
Вот из этого шаблона:
Цитата

<!--WEL.HELLO-->
<!--WEL.STAT-->
<!--WEL.NEWS-->
<!--WEL.HELLO-->
<!--WEL.STAT-->

Мне нужно получить массив smile Всего делов то! Регуляркой! smile И без повторов!:
Цитата

HELLO
STAT
NEWS



--------------------
PM MAIL WWW Skype   Вверх
Ciber SLasH
Дата 9.4.2006, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 3
Всего: 67



Код

$tmpl = array('<!--WEL.HELLO-->', '<!--WEL.STAT-->', '<!--WEL.NEWS-->', '<!--WEL.HELLO-->', '<!--WEL.STAT-->');
$files = preg_replace("#<!--WEL\.([\w\.]+)-->#", "$1", $tmpl);
echo '<pre>'.print_r($files, true).'</pre>';

PM   Вверх
ZlojEzh
Дата 9.4.2006, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 10
Всего: 15



Код

$templ = <<<EOD
<html>
<body>
  <!--WEL.HELLO-->
  <br>
  <!--WEL.STAT-->
  <br>
  <!--WEL.NEWS-->
  <br>
  <!--WEL.HELLO-->
  <br>
  <!--WEL.STAT-->
</body>
</html>
EOD;

preg_match_all("#<!--WEL\.([\w\d_]+)-->#i",$templ,$modules);

//print_r($modules);

foreach ($modules[1] as $file)
{    
  if( file_exists( $file ) )
  {    
    require_once( ROOT_PATH."sources/class/".$file.".php" );    
    $runme = new $file_class();    
    $runme->ipsclass =& $ipsclass;    
    $runme->auto_run();    
  }    
}

PM MAIL ICQ   Вверх
Elfet
Дата 9.4.2006, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



ZlojEzh Ок! smile Спасибо! [+]


--------------------
PM MAIL WWW Skype   Вверх
Elfet
Дата 10.4.2006, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Мммм! smile Всё ок, но только он ещё с повторами выходит:
Цитата

[1] => Array ( [0] => HELLO [1] => STAT [2] => NEWS [3] => HELLO [4] => STAT )

Какая функция повторы убирает? smile

А ещё я у меня тут идея вознкла, вот такой отпарсить как? <!--WEL.NEWS(12,34,456,Привет мир)--> И запустить: $runme->auto_run(12,34,456,"Привет мир"); smile smile smile
smile


--------------------
PM MAIL WWW Skype   Вверх
ZlojEzh
Дата 10.4.2006, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 10
Всего: 15



Код

$modules[1] = array_values(array_unique($modules[1]));

PM MAIL ICQ   Вверх
Elfet
Дата 10.4.2006, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Ок! smile Спасибо! А ещё как вот это можно?
Цитата

<!--WEL.NEWS(12,34,456,Привет мир)-->

В

$runme->auto_run(12,34,456,"Привет мир");



--------------------
PM MAIL WWW Skype   Вверх
ZlojEzh
Дата 10.4.2006, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 10
Всего: 15



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

Код

preg_match_all("#<!--WEL\.([\w\d_]+)\(([^\)]*)\)-->#i",$templ,$match,PREG_SET_ORDER);
foreach ($match as $m) {
  $module = ROOT_PATH.'sources/class/'.$m[1].'.php';
  $params = explode(',',$m[2]);
  require_once($module);  //  <- а внутри включаемого файла разбираешь список параметров
}


и лучше, наверное, разделитель другой выбрать в списке параметров
PM MAIL ICQ   Вверх
Elfet
Дата 11.4.2006, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



А вот тут помойму не пройдёт #<!--WEL\.([\w\d_]+)\(([^\)]*)\)-->#i <!--WEL.STAT--> без параметров?

Это сообщение отредактировал(а) Elfet - 11.4.2006, 11:16


--------------------
PM MAIL WWW Skype   Вверх
IvanB
Дата 11.4.2006, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 23.5.2005
Где: Irkutsk

Репутация: 2
Всего: 5



Если не пройдёт, то вроде так: smile
Код

#<!--WEL\.([\w\d_]+)((\(([^\)]*)\)-->) | (-->))#
.

Это сообщение отредактировал(а) IvanB - 11.4.2006, 12:28
--------------------
Закон отладки: Каждая последняя ошибка является предпоследней.
PM MAIL ICQ   Вверх
Elfet
Дата 11.4.2006, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Тоже не пройдёт smile



--------------------
PM MAIL WWW Skype   Вверх
Elfet
Дата 11.4.2006, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Странно почему вот эта конструкция не хочет работать? smile #<!--WEL\.([\w\d_]+[\([\w\s\d,]*\)]?)-->#
Добавлено @ 13:53
Ы! smile Заработало smile "#<!--WEL\.([\w\d_]+(\([\w\s\d,]+\))?)-->#"
Добавлено @ 13:55
#<!--WEL\.([\w\d_]+(\(([\w\s\d,]+)?\))?)-->#

А вот интересно, стоит ли делать такую загрузку модулей? 6) Не будет ли нагрузка очень большой? smile


--------------------
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0921 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.