Как легче всего сделать такой парсинг: на странице есть некий тег <div class="...">
...
</div>
Внутри него в принципе могут быть, а могут и не быть другие теги div. Мне нужно выцепить все, что относится к самому внешнему тегу первому.
Т.е. есть строка, начинающаяся <div class="..."> и нужно оставить от нее подстроку, оканчивающуюся на закрытии этого тега.
Спустя 5 минут, 18 секунд (5.03.2010 - 18:01) qpayct написал(а):
тебе нужен только 1 <div class=" или все найденые?
Спустя 16 минут, 50 секунд (5.03.2010 - 18:18) motorway написал(а):
Так как их может быть много, использую explode. Так что для каждой строки будет выполняться эта функция по нахождению подстроки
Спустя 9 минут, 56 секунд (5.03.2010 - 18:28) qpayct написал(а):
а покажи пример такого кода откуда надо брать одинаковые отрезки, а то я тебя не понял чёто
Спустя 3 минуты, 9 секунд (5.03.2010 - 18:31) motorway написал(а):
<body>
<div class="a">A
<div></div>
</div>
<hr>
<div class="a">B
<div></div>
11
</div>
</body>
<div class="a">A
<div></div>
</div>
<hr>
<div class="a">B
<div></div>
11
</div>
</body>
Спустя 2 минуты, 31 секунда (5.03.2010 - 18:33) qpayct написал(а):
и что нужно допустим с этого вырезать?
Спустя 6 минут, 6 секунд (5.03.2010 - 18:39) motorway написал(а):
для первого тега
A
<div></div>,
для второго
B
<div></div>
11
A
<div></div>,
для второго
B
<div></div>
11
Спустя 42 секунды (5.03.2010 - 18:40) motorway написал(а):
ну explod'ом я их режу, а дальше нужно просто все до конца текущего открытого тега внешнего
Спустя 11 минут, 19 секунд (5.03.2010 - 18:51) qpayct написал(а):
чо!?
колотить!
ты просто показать уже можешь?
колотить!
ты просто показать уже можешь?
Спустя 1 час, 23 минуты, 14 секунд (5.03.2010 - 20:15) motorway написал(а):
а что непонятного-то? я прошу вынуть все содержимое определенного тега div до его закрытия и всё. Вопросы есть?
Спустя 48 минут, 54 секунды (5.03.2010 - 21:04) qpayct написал(а):
значит тебе надо найти "<div" после этого ">" и после вырезать всё что между ">" и "</div>" и всё?
Спустя 7 минут, 2 секунды (5.03.2010 - 21:11) motorway написал(а):
Надо получить все, что находится внутри <div class="post">...</div>, и вырезать.
Если таких <div class="post"> на странице несколько, то просто объединить все, что находится в них. Понятно?
При этом учесть, что там внутри могут быть тоже вложены div'ы
Если таких <div class="post"> на странице несколько, то просто объединить все, что находится в них. Понятно?
При этом учесть, что там внутри могут быть тоже вложены div'ы
Спустя 16 минут, 40 секунд (5.03.2010 - 21:27) qpayct написал(а):
preg_match_all("/(?<=div class=\"post\">)[a-zA-Z0-9.\/]*(?=<\/div>)/", $string, $matches);
print_r($matches);
как то вот так попробуй
Спустя 5 минут, 58 секунд (5.03.2010 - 21:33) motorway написал(а):
Array ( [0] => Array ( ) ) получил, хотя на странице теги есть
Спустя 17 минут, 5 секунд (5.03.2010 - 21:50) qpayct написал(а):
а что внутри этих тегов?
Спустя 5 минут, 44 секунды (5.03.2010 - 21:56) motorway написал(а):
<div class="post">
<h2><a href="..." title="...">...</a></h2>
<div class="entry">
<p style="text-align: left;"><strong><img class="alignleft size-thumbnail wp-image-586" title="..." src="..." alt="..." width="100" height="100" />TEXT
<p style="text-align: left;">
<p>TEXT</p>
<div class="endline"></div>
Тут еще кое-что
</div>
<div class="endline"></div>
</div>
Спустя 1 час, 36 минут, 56 секунд (5.03.2010 - 23:33) motorway написал(а):
пришла идея, но оказалась неправильной...
Спустя 6 минут, 19 секунд (5.03.2010 - 23:39) qpayct написал(а):
работает

<?php
$string="
<div class=\"post\">
<h2><a href=\"...\" title=\"...\">...</a></h2>
<div class=\"entry\">
<p style=\"text-align: left;\"><strong>
<img class=\"alignleft size-thumbnail wp-image-586\" title=\"...\" src=\"...\" alt=\"...\" width=\"100\" height=\"100\" />TEXT
<p style=\"text-align:left;\">
<p>TEXT</p>
<div class=\"endline\"></div>
Тут еще кое-что</div>
<div class=\"endline\"></div>
</div>";
preg_match_all("/(?<=div class=\"post\">)[\s\S.\/]*(?=<\/div>)/", $string, $matches);
?><textarea cols="50" rows="10"><?
print_r($matches);
?></textarea><?
?>
Спустя 11 минут (5.03.2010 - 23:50) motorway написал(а):
если испробовать на одном сайте, то остаются лишние теги </div>, кроме этого после самого последнего дива остается лишний код, который там есть.
Может, так решить: найти кол-во N входящих <div , а потом найти N+1 </div>.
И все, что между этим, вырезать
Может, так решить: найти кол-во N входящих <div , а потом найти N+1 </div>.
И все, что между этим, вырезать
Спустя 5 минут, 16 секунд (5.03.2010 - 23:56) qpayct написал(а):
тыб за всё это время мог бы уже сам выучить регулярные выражения

Спустя 1 минута, 56 секунд (5.03.2010 - 23:57) motorway написал(а):
по идее да, просто именно они почему-то вызывают у меня неприязнь. Я обычно пытаюсь использовать только explode, substr, strpos и т.п.
Спустя 1 минута, 33 секунды (5.03.2010 - 23:59) qpayct написал(а):
Цитата (motorway @ 5.03.2010 - 22:57) |
по идее да, просто именно они почему-то вызывают у меня неприязнь. Я обычно пытаюсь использовать только explode, substr, strpos и т.п. |
боязнь нового...
короче, ты конкретно условия поставить можешь или весь день тормозить будешь?
короче, ты конкретно условия поставить можешь или весь день тормозить будешь?
Спустя 3 минуты, 38 секунд (6.03.2010 - 00:03) motorway написал(а):
Ты странный какой-то. Разве ты не видел/понял, что нужно выцепить все, что находится между <div class="post"> и соответствующим ему закрывающим </div>? Если же на странице таких <div class="post"> много, то сделать это для каждого такого дива, а потом соединить полученные строки
Спустя 1 минута, 38 секунд (6.03.2010 - 00:04) qpayct написал(а):
спокойной ночи 
утро вечера мудреней

утро вечера мудреней
Спустя 2 минуты, 42 секунды (6.03.2010 - 00:07) motorway написал(а):
ладно, буду добивать