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

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

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

 

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

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

тема: Как вытащить текст находящийся между тэгами?
 
 автор: 1999   (16.07.2007 в 13:59)   письмо автору
 
 

подскажите как вытащить текст находящийся между тэгами

<tr>
<td bgcolor="#FFF"><b>news header</b></td>
<td bgcolor="#CCCDDD" width="40%"><div align="right">news data</div></td>
</tr>


т.е. получить 2 элемента - news header и news data

   
 
 автор: SHAman   (16.07.2007 в 15:54)   письмо автору
 
   для: 1999   (16.07.2007 в 13:59)
 

Абсолютно ничего сложного. Вот регулярка. Только нужно включить многострочный режим.


#<tr> 
<td bgcolor="\#FFF"><b>(.+?)<\/b><\/td> 
<td bgcolor="\#CCCDDD" width="40%"><div align="right">(.+?)<\/div><\/td> 
<\/tr>#


А вообще, жирновато получается. Попробуйте ограничиться двумя построчными:

/<td bgcolor="#FFF"><b>(.+?)</b></td>/
/<td bgcolor="\#CCCDDD" width="40%"><div align="right">(.+?)<\/div><\/td>/

   
 
 автор: 1999   (16.07.2007 в 17:10)   письмо автору
 
   для: SHAman   (16.07.2007 в 15:54)
 

я понимаю что просто, но почему-то не работает...
а что значит включить многострочный режим? и почему жирно?

   
 
 автор: SHAman   (16.07.2007 в 17:48)   письмо автору
 
   для: 1999   (16.07.2007 в 17:10)
 

не работает? Ну, мне тестить лениво. Наверняка в мелочи ошибка. Многострочный режим задается после регулярки какой-то буковкой. Не помню какой. В перле это "m". В пхп - не знаю. Многострочный режим позволяет механизму рег выражений игнорить переносы строк. То есть, если раньше регулярка /мама/ не находила текст
"ма
ма"
то в многострочном режиме - будет.

Жирно - потому что. Механизм регулярных выражений посимвольно и очень ресурсоемко проходит по всему регулярному выражению. Если оно сложное, то еще и возвращается назад иногда. Это жрет много памяти и времени. Лучше делать регулярки как можно меньше. Чем меньше, тем лушче. Мастера говорят, что иногда лучше разбить толстую регулярку на несколько маленьких. Так быстрее получается и экономичнее. Хотя, хз.

   
 
 автор: Unknown   (16.07.2007 в 21:19)   письмо автору
 
   для: SHAman   (16.07.2007 в 17:48)
 

<?php
$str 
'<tr>
<td bgcolor="#FFF"><b>news header</b></td>
<td bgcolor="#CCCDDD" width="40%"><div align="right">news data</div></td>
</tr>'
;
echo(
strip_tags($str));
?>

   
 
 автор: 1999   (17.07.2007 в 11:32)   письмо автору
 
   для: Unknown   (16.07.2007 в 21:19)
 

кхм... и что?)))

   
 
 автор: 1999   (17.07.2007 в 11:32)   письмо автору
 
   для: SHAman   (16.07.2007 в 17:48)
 

оке. спасибо

   
Rambler's Top100
вверх

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