[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярные выражения, парсинг другого сайта
John Cena
доброе время суток...
подскажите каким должно выглядеть регулярное выражение что бы получить содержимое diva с id="main", если все выглядит вот так:


<div>
<div>

<еще много дивов и контента>
<div id="main"><!-- начиная отсюда -->
<div>
и здесь много дивов и разного контента
</div>
</div>
<!-- и заканчивая здесь то что мне нужно достать -->
</еще много дивов и разного контента>
</div>
</div>



заранее спасибо за ответы!



Спустя 34 минуты, 32 секунды (27.07.2011 - 13:43) VolDroN написал(а):
там не одна строчка кода я думаю.
Т.к. например </div> стоит от вложенного дива и регулярное выражение его обрежет.
А js использовать нельзя?
var main = document.getElementById('main').innerHTML;

Спустя 3 минуты, 49 секунд (27.07.2011 - 13:47) onix написал(а):
возможно будет проще работать с DOM-объектом:

<?php
$dom = new DOMDocument();
$dom->loadHTML($link);
$main = $dom->getElementById("main");
echo $main->saveHTML();
?>

Спустя 19 минут, 54 секунды (27.07.2011 - 14:06) John Cena написал(а):
ну как бы яваскрипт не совсем подходит, ну да ладно, чувствую придется с ним все делать



Спустя 4 минуты, 34 секунды John Cena написал(а):
а как тогда взять все c первого divа в body?



Спустя 45 минут, 5 секунд John Cena написал(а):
все, разобрался, а подскажите пожалуйста еще такой вопрос - я делаю вот так

$str=preg_replace("/(<div[^>]*>)/i","<div>",$matches[0][0]);


что бы убрать не нужные классы и стили, но мне необходимо что бы id дива оставалось...

подскажите как преобразовать это рег. выр. для того что бы id элемента оставалось?

Спустя 5 часов, 18 минут, 52 секунды (27.07.2011 - 19:25) Winston написал(а):
Вот держи, на блюдечке :)

Свернутый текст
$str = '<div>
<div>
<еще много дивов и контента>
<div id="main" style="ololo"><!-- начиная отсюда -->
<div>
и здесь много дивов и разного контента
</div>
</div><!-- и заканчивая здесь то что мне нужно достать -->
</еще много дивов и разного контента>
</div>
</div>'
;

preg_match("#<div id=(\"|')main\\1.*>(.*)</div>.*</div>#isuU", $str, $match); // Выбераем все между div с id main

echo '<pre>' . htmlspecialchars(print_r($match, 1)) . '</pre><br/>';

$match = preg_replace("#(<div).*(id=\"main\").*>#isu", '\\1 \\2>', $match); // Удаляем все и оставляем div и id main

echo '<pre>' . htmlspecialchars(print_r($match, 1)) . '</pre><br/>';

Свернутый текст
C тебя + :rolleyes:
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.