Войти

Показать полную графическую версию : Регулярное выражение: вырезать данные между тегами


venuko
30-05-2009, 21:25
Не подскажите, плиз, регулярку как между тегами к примеру <div id="myclass">текст</div> вырезать текст? Буду очень благодарен, сенкс


$file = file_get_contents("http://www.site.ru");

echo "$file";

Sham
30-05-2009, 22:00
$file = preg_replace
(
'#(\<div[^\>]*\>).+?(\<\/div\>)#is',
'${1}${2}',
$file
);

venuko
30-05-2009, 22:03
А если между такими тегами нужно вытащить текст и теги его оформления:

<br>
<br>
<div class="text_content2_1">
текст
</div>
<br>
<br>


Объясните плиз, синтаксис :(

Может как-то по проще, указать одни теги до и другие после, и чтобы между ними вырезался текст с тегами

Sham
30-05-2009, 22:22
Вырезать - это удалять, или еще чего-то? Если копировать текст, то preg_match...

venuko
04-06-2009, 11:43
Подскажите, а как конкретно сделать, к примеру есть две переменные $a и $b, к примеру в первой переменной указать открывающиеся теги (<td><p style="myfont">) а во второй закрывающие (</p></td>), т.е. любой набор тегов между которымы нужно взять текст и копировать в новую переменную.

$a = "открывающие теги";
$b = "закрывающие теги";

функция копирования текста между этими тегами (переменной a и b)

echo $result; //вывод результата на экран


Как будет выглядеть такой код? Спасибо за помощь.

Sham
04-06-2009, 13:15
if
(
preg_match
(
'#'.preg_quote($a).'(.+?)'.preg_quote($b).'#is',
$file,
$result
)
) echo $result[1];

см. http://ru2.php.net/preg-match

proxy
04-06-2009, 16:59
Хорошая справка для начинающих по рег-выражениям. (http://debugger.ru/articles/nativeregexp)
Рег-выражения для разных языков. (http://regexp.by.ru/)




© OSzone.net 2001-2012