[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярка для шаблонизатора
cyberside
Появилась идея сварганить такую штуку как вывод данных для опредиленных групп.
По плану это должно работать как:
[group-1]Видит группа с индексом 1[/group]
[not-group-1]Не видит группа с индексом 1[/group]

Понятно что это будет не однократно встречатся в шаблоне.

С регулярками я плохо знаком, может кто поможет советом, ссылкой или примером.
Может уже есть такой скрипт, прошу дать линк...



Спустя 4 минуты, 3 секунды (28.03.2012 - 10:06) m4a1fox написал(а):
Зачем регулярка? Обычный условный оператор вполне подойдет!

Спустя 2 минуты, 2 секунды (28.03.2012 - 10:08) cyberside написал(а):
А по подробней можно?

Спустя 3 минуты, 35 секунд (28.03.2012 - 10:12) nugle написал(а):
preg_match_all('#\[group-1\](.*)\[/group\]#s')

Спустя 7 минут, 10 секунд (28.03.2012 - 10:19) cyberside написал(а):
nugle, ну а в случае если я создам новую групу не придусмотренную скриптом?
Нужно как-то поглобальней...

Попробовал так)))
preg_match_all('#\[group-(.*?)\](.*?)\[/group\]#isU', $template, $group);

Не получилось ) :lol:

Спустя 6 минут, 14 секунд (28.03.2012 - 10:25) nugle написал(а):
preg_match_all('#\[group-(:.*)\](.*)\[/group\]#isU', $template, $group);

а так?

Спустя 5 минут, 52 секунды (28.03.2012 - 10:31) Invis1ble написал(а):
Цитата
С регулярками я плохо знаком

хороший повод познакомиться получше
Цитата
Может уже есть такой скрипт, прошу дать линк...

регулярки, как правило, составляются индивидуально под конкретную задачу

Спустя 1 минута, 16 секунд (28.03.2012 - 10:32) cyberside написал(а):
Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) )

Спустя 6 минут, 32 секунды (28.03.2012 - 10:39) nugle написал(а):
#\[group-\d*\](.*)\[/group\]#isU

Спустя 2 минуты, 40 секунд (28.03.2012 - 10:41) cyberside написал(а):
Вот нашел что-то похожее, но немного не понимаю синтаксис, может кто подскажет что к чему?

if (strpos ( $this->template, "[not-group=" ) !== false) {
$this->template = preg_replace ( "#\\[not-group=(.+?)\\](.*?)\\[/not-group\\]#ies", "\$this->check_group('\\1', '\\2', false)", $this->template );
}

if (strpos ( $this->template, "[group=" ) !== false) {
$this->template = preg_replace ( "#\\[group=(.+?)\\](.*?)\\[/group\\]#ies", "\$this->check_group('\\1', '\\2')", $this->template );
}

Спустя 1 минута, 51 секунда (28.03.2012 - 10:43) nugle написал(а):
cyberside
ты попробовал так, как я написал?

Спустя 1 минута, 40 секунд (28.03.2012 - 10:45) cyberside написал(а):
nugle, Да, работает:
Array ( [0] => Array ( [0] => [group-1]Для админов[/group] [1] => [group-1]Для админо 2 в[/group] ) [1] => Array ( [0] => Для админов [1] => Для админо 2 в ) )

Спустя 5 минут, 32 секунды (28.03.2012 - 10:50) cyberside написал(а):
Вот только как опредилить для кого-что))

Спустя 14 минут, 53 секунды (28.03.2012 - 11:05) nugle написал(а):
cyberside
подставляй соответствующие значения
'#\[group-'.$var.'\](.*)\[/group\]#isU'

Спустя 7 минут (28.03.2012 - 11:12) cyberside написал(а):
nugle, я уже с тем примером разобрался...

Спустя 2 минуты, 36 секунд (28.03.2012 - 11:15) Winston написал(а):
$delim = 'group';
'#\['.$delim.'\](.*)\[/'.$delim.'\]#isU'
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.