Вы не зашли.
#1.
Morgan
Off
(10)
Участник
2010.08.03 16:04
Код:
span style="color: #0000BB"><?php$content = '{if $a}{if $b}{/if}{/if}';preg_match_all('~\{if (\!)?(\~)?\$((.*)(\.(.*))?)( (.*) ([0-9]+|\$((.*)(\.(.*))?)))?\}(?:\r\n|\n)?(.*)(?:\r\n|\n)?\{\/if\}~uUs', $content, $ifs);print_r($ifs);?> |
выдает одно найденное значение с содержимым ($ifs[0][0])
хотя должно быть два найденных значения, типа
Код:
$ifs[0][0] => |
{if $b} |
|
{/if} |
$ifs[1][0] => {if $a} |
|
{/if} |
уже замучался я с это регуляркой

, прошу помощи
Отредактировано Morgan (2010.08.03 16:04)
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#2.
Morgan
Off
(10)
Участник
2010.08.03 17:05
решил пока таким способом
Код:
span style="color: #0000BB"><?phppreg_match_all('~\{if (\!)?(\~)?\$((.*)(\.(.*))?)( (.*) ([0-9]+|\$((.*)(\.(.*))?)))?\}(?:\r\n|\n)?(.*)(?:\r\n|\n)?\{\/if\}~uUs', $template_content, $ifs, PREG_SET_ORDER);?> |
но все таки, регулярка может составлена не совсем точно?
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#3.
Morgan
Off
(10)
Участник
2010.08.03 18:06
пробовал сделать так
Код:
span style="color: #0000BB"><?php$content = '{if $a}{if $b}{/if $b}{/if $a}';preg_match_all('~\{if ((\!)?(\~)?\$((.*)(\.(.*))?)( (.*) ([0-9]+|\$((.*)(\.(.*))?)))?)\}(?:\r\n|\n)?(.*)(?:\r\n|\n)?\{\/if \\1\}~uUs', $content, $ifs);print_r($ifs);?> |
===>>>
Код:
Array |
( |
[0] => Array |
( |
[0] => {if $a} |
{if $b} |
|
{/if $b} |
|
{/if $a} |
) |
|
[1] => Array |
( |
[0] => $a |
) |
|
[2] => Array |
( |
[0] => |
) |
|
[3] => Array |
( |
[0] => |
) |
|
[4] => Array |
( |
[0] => a |
) |
|
[5] => Array |
( |
[0] => a |
) |
|
[6] => Array |
( |
[0] => |
) |
|
[7] => Array |
( |
[0] => |
) |
|
[8] => Array |
( |
[0] => |
) |
|
[9] => Array |
( |
[0] => |
) |
|
[10] => Array |
( |
[0] => |
) |
|
[11] => Array |
( |
[0] => |
) |
|
[12] => Array |
( |
[0] => |
) |
|
[13] => Array |
( |
[0] => |
) |
|
[14] => Array |
( |
[0] => |
) |
|
[15] => Array |
( |
[0] => |
{if $b} |
|
{/if $b} |
|
) |
|
) |
то есть, первое вхождение найдено а второе нет
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#4.
Morgan
Off
(10)
Участник
2010.08.03 20:08
решено с помощью создания функции для рекурсивного прохода по всем таким вложенностям.
Натан ротшильд :
Кто владеет информацией, тот владеет миром

)
разбирая такую регулярку можно мозг сломать)
#6.
Morgan
Off
(10)
Участник
2010.08.06 18:06
вам это ~21 числа разбирать предстоит
Натан ротшильд :
Кто владеет информацией, тот владеет миром
удачи в конкурсе
#8.
Morgan
Off
(10)
Участник
2010.08.07 11:11
спасибо
Натан ротшильд :
Кто владеет информацией, тот владеет миром
Страниц: 1