1 Востаннє редагувалося fanatp (22.08.2016 11:12:46)

Тема: PHP.Як вирізати частину коду по тегах

Доброго дня ,у мене така проблема ,написав шаблонізатор ,який використовує функцію file_get_contents().В одному із шаблонів є теги [auth]{text}[/auth].Мені потрібно щоб при загрузці підгружалося тільки те що між цими тегами ,а не весь документ.Пробував через preg_match() ось так :

preg_match('#^\\[auth\\](.*?)\\[/auth\\]#si',$this->template)

але всеріно нічого не вирізається. Пробував також preg_match_all(),але результат такий самий ,пробував заміняти непотрібний (на певний момент) контент

preg_replace('#^\\[auth\\](.*?)\\[/auth\\]#','',$this->template)

,але бажаного результату так і не добився... Підкажіть ,яким чином можна добитися результату,щоб при вказанні тегів типу [auth][/auth] виводилося все ,що знаходиться між ними ...

2

Re: PHP.Як вирізати частину коду по тегах

Потрібно використовувати "заглядування вперед і назад", це (?=) і (?<=)

(?<=\[auth\]).*(?=\[\/auth\])
Подякували: leofun01, 221VOLT2

3

Re: PHP.Як вирізати частину коду по тегах

$text = '[auth]{text}[/auth]';
preg_match('/\[auth\](.+)\[\/auth\]/sU', $text, $res);
echo $res[1]; //{text}
Подякували: fanatp, leofun01, 221VOLT3