Регулярное выражение, соответствующее {@layout=xxx}Php

Кемеровские программисты php общаются здесь
Anonymous
Регулярное выражение, соответствующее {@layout=xxx}

Сообщение Anonymous »

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

Код: Выделить всё

{@layout=layoutname}

{@content}
This is a paragraph
{@endcontent}
Но я не знаю, как сопоставить {@layout= и получить имя макета.

Я пробовал: if (preg_match('/(\{\@layout=[a-z]+\})+/', $string, $matches)) { это работает... вроде . Я хочу проверить, загружено ли более 1 макета, чтобы предотвратить ошибки в длинных файлах, и хочу подсчитать, сколько $соответствий у меня есть, и вернуть ошибку, если найдено более 1 совпадения, но вместо получения всех найденных макетов он возвращает то же самое макет дважды:

Используемая строка:

Код: Выделить всё

{@layout=app}

{@layout=main}

{@content}
{[username]} profile
[img]{[photoURL]}[/img]
Name:[/b] {[name]}[b]
Age:[/b] {[age]}[b]
Location:[/b] {[location]}

{@endcontent}
и используя это выражение, я получаю:

Код: Выделить всё

Array ( [0] => {@layout=app} [1] => {@layout=app} )
может кто-нибудь помочь мне найти мое регулярное выражение?

Подробнее здесь: https://stackoverflow.com/questions/411 ... layout-xxx

Вернуться в «Php»