Бочонок
http://frontender.info
Помогите найти ошибку в регулярном выражении...
Приятного времени суток.
Есть регулярное выражение, которое должно вылавливать конструкции вида:
<!--[cms][dynamic][число]Имя-->Текст<!--[cms][end]Имя-->
Причем имя должно быть одинаково и в открывающем и в закрывающем комментарии.
По идее
Должно работать. Но не работает.
Не срабатывает ссылка на подмаску с именем.
Подскажита, пожалуйста - где я ошибся.
С уважением. Боченок.
-~{}~ 14.05.08 10:25:
Разобрался. Дело было в ""
Тема закрыта...
Приятного времени суток.
Есть регулярное выражение, которое должно вылавливать конструкции вида:
<!--[cms][dynamic][число]Имя-->Текст<!--[cms][end]Имя-->
Причем имя должно быть одинаково и в открывающем и в закрывающем комментарии.
По идее
PHP:
"<\!--\[cms\]\[dynamic\]\[([\d]+)\](.*?)-->.*?<\!--\[cms\]\[end\]\2-->"
Не срабатывает ссылка на подмаску с именем.
Подскажита, пожалуйста - где я ошибся.
PHP:
<?php
$template=' <div>
<div class="menu_wrapper-l">
<!--Блок меню. Начало.-->
<!--[cms][dynamic][123123]Имя точки 1-->
<ul>
<li>строка 1</li>
<li>строка 2</li>
</ul>
<!--[cms][end]Имя точки 1-->
<!--[cms][dynamic][123123]Имя точки 2-->
<ul>
<li>строка 1</li>
<li>строка 2</li>
</ul>
<!--[cms][end]Имя точки 2-->
<!--Блок меню. Конец.-->
</div>
</div>';
$pattern = "|<\!--\[cms\]\[dynamic\]\[([\d]+)\](.*?)-->.*?<\!--\[cms\]\[end\]\2-->|ius";
if(!preg_match_all($pattern,$template,$matches)){
echo 'no one found';
}else{
echo "<pre>";
print_r($matches);
echo "</pre>";
}
?>
-~{}~ 14.05.08 10:25:
Разобрался. Дело было в ""
Тема закрыта...