Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вырезать текст в HTML-странице - регулярные выражения
 
 автор: localGhost   (03.08.2005 в 07:31)   письмо автору
 
 

Задача следующая. Есть переменная, в нее записанно содержимое html страницы. В этой странице присутствуют коментарии: <!-- START --> и <!-- END -->. так вот надо оставить только то что находиться внутри этих коментариев. все остальное удалить. Как составить такое регулярное выражение?

   
 
 автор: method   (03.08.2005 в 07:59)   письмо автору
 
   для: localGhost   (03.08.2005 в 07:31)
 

функцией preg_match_all можно...
почитай о ней в онлайн справочнике функций PHP

   
 
 автор: cheops   (03.08.2005 в 13:42)   письмо автору
 
   для: localGhost   (03.08.2005 в 07:31)
 

Можно воспользоваться следующим скриптом
<?php
  $text 
"Задача следующая. Есть переменная, в нее записанно содержимое html страницы.
           В этой странице присутствуют коментарии: <!-- START --> и <!-- END -->. так вот
           надо оставить только то что находиться внутри этих коментариев. все остальное удалить.
           <!-- START -->Как составить такое регулярное выражение<!-- END -->?"
;
  
// Так как в тексте может быть очень много разнообразных тэгов
  // заменяем <!-- START --> и <!-- END --> на что-нибудь уникальное,
  // например, |.
  
$text str_replace("<!-- START -->","|",$text);
  
$text str_replace("<!-- END -->","|",$text);
  
// Само регулярное выражение
  
$pattern "#\|([^\|]+)\|#iU"
  
preg_match_all($pattern,$text,$out,PREG_PATTERN_ORDER); 
  echo 
"<pre>"
  
print_r($out[1]);
  echo 
"</pre>"
?>

Вообще тэги достаточно паршивые - выцепить их при помощи регулярных выражений можно только если между ними никаких тэгов нет, иначе приходится прибегать к скрипту, приведённому выше.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования