Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Регулярное выражение: вырезать данные между тегами (http://forum.oszone.net/showthread.php?t=141462)

venuko 30-05-2009 21:25 1131215

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


PHP код:

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

echo 
"$file"


Sham 30-05-2009 22:00 1131242

PHP код:

$file preg_replace
(
    
'#(\<div[^\>]*\>).+?(\<\/div\>)#is',
    
'${1}${2}',
    
$file
); 


venuko 30-05-2009 22:03 1131248

А если между такими тегами нужно вытащить текст и теги его оформления:

PHP код:

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


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

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

Sham 30-05-2009 22:22 1131272

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

venuko 04-06-2009 11:43 1134720

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

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

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

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


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

Sham 04-06-2009 13:15 1134800

PHP код:

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 1135032

Хорошая справка для начинающих по рег-выражениям.
Рег-выражения для разных языков.


Время: 10:14.

Время: 10:14.
© OSzone.net 2001-