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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Заменить вложенные теги

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Ninja
Отправлено: 07 Марта, 2012 - 15:36:06
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Нужно заменить/получить вложенные теги вида теги вида:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <!--news-->
  3.   some text
  4.   <!--else-->
  5.     <!--time-->sada sdasd s<!--/time-->
  6. <!--/news-->
 
 Top
garvey
Отправлено: 07 Марта, 2012 - 15:43:33
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010  
Откуда: Minsk


Помог: 3 раз(а)




Что значит заменить, что значит получить? Приведите пример, пожалуйста.
 
 Top
Ninja
Отправлено: 07 Марта, 2012 - 16:01:41
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Например, чтобы после замены получилось:
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.  
 
 Top
DelphinPRO
Отправлено: 07 Марта, 2012 - 16:19:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




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

Если интересует как заменить одну строку симолов на другую - смотрите в сторону регулярных выражений.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Ninja
Отправлено: 07 Марта, 2012 - 17:53:13
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Мне нужен всего лишь принцип поиска вложенных конструкций с помощью регулярного выражения
 
 Top
DeepVarvar Супермодератор
Отправлено: 07 Марта, 2012 - 18:30:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




PHP:
скопировать код в буфер обмена
  1. preg_match_all("/<!--(\w+)-->(.*)<!--\/\\1-->/s", $template, $m);
  2. print_r($m);
 
 Top
Ninja
Отправлено: 07 Марта, 2012 - 19:27:28
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




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. )
 
 Top
DeepVarvar Супермодератор
Отправлено: 08 Марта, 2012 - 00:01:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Ninja пишет:
Мне нужен всего лишь принцип

Тема превращается в "Напишите за меня пожалуйста"?
 
 Top
LOL
Отправлено: 08 Марта, 2012 - 09:32:50
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Нояб. 2010  


Помог: 1 раз(а)

[+][+][+][+]


Ninja
исправьте вывод данных на вот это-
echo '<pre>'.htmlspecialchars(print_r($m[1])).'</pre>';
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB