Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Заменить вложенные теги
Форумы портала PHP.SU » PHP » Регулярные выражения » Заменить вложенные теги

Страниц (1): [1]
 

1. Ninja - 07 Марта, 2012 - 15:36:06 - перейти к сообщению
Нужно заменить/получить вложенные теги вида теги вида:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <!--news-->
  3.   some text
  4.   <!--else-->
  5.     <!--time-->sada sdasd s<!--/time-->
  6. <!--/news-->
2. garvey - 07 Марта, 2012 - 15:43:33 - перейти к сообщению
Что значит заменить, что значит получить? Приведите пример, пожалуйста.
3. Ninja - 07 Марта, 2012 - 16:01:41 - перейти к сообщению
Например, чтобы после замены получилось:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php if ($var['news']) { ?>
  3.    some text
  4. <?php } else { ?>
  5.    <?php if ($var['time']) { ?>
  6.       sada sdasd s
  7.    <?php } ?>
  8. <?php } ?>
  9.  
4. DelphinPRO - 07 Марта, 2012 - 16:19:34 - перейти к сообщению
то есть вы хотите чтоб вам подсказали как написать компилирующий шаблонизатор?
Это обширная тема, одним ответом не обойдешься.

Если интересует как заменить одну строку симолов на другую - смотрите в сторону регулярных выражений.
5. Ninja - 07 Марта, 2012 - 17:53:13 - перейти к сообщению
Мне нужен всего лишь принцип поиска вложенных конструкций с помощью регулярного выражения
6. DeepVarvar - 07 Марта, 2012 - 18:30:31 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. preg_match_all("/<!--(\w+)-->(.*)<!--\/\\1-->/s", $template, $m);
  2. print_r($m);
7. Ninja - 07 Марта, 2012 - 19:27:28 - перейти к сообщению
DeepVarvar пишет:
PHP:
скопировать код в буфер обмена
  1. preg_match_all("/<!--(\w+)-->(.*)<!--\/\\1-->/s", $template, $m);
  2. print_r($m);

Вложенный <!--time--> не парсит
CODE (htmlphp):
скопировать код в буфер обмена
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [0] => <!--news-->
  6.   some text
  7.   <!--else-->
  8.     <!--time-->sada sdasd s<!--/time-->
  9. <!--/news-->
  10.         )
  11.  
  12.     [1] => Array
  13.         (
  14.             [0] => news
  15.         )
  16.  
  17.     [2] => Array
  18.         (
  19.             [0] =>
  20.   some text
  21.   <!--else-->
  22.     <!--time-->sada sdasd s<!--/time-->
  23.  
  24.         )
  25.  
  26. )
8. DeepVarvar - 08 Марта, 2012 - 00:01:24 - перейти к сообщению
Ninja пишет:
Мне нужен всего лишь принцип

Тема превращается в "Напишите за меня пожалуйста"?
9. LOL - 08 Марта, 2012 - 09:32:50 - перейти к сообщению
Ninja
исправьте вывод данных на вот это-
echo '<pre>'.htmlspecialchars(print_r($m[1])).'</pre>';

 

Powered by ExBB FM 1.0 RC1