возможно ли вложенное preg_match? - PullRequest
1 голос
/ 23 февраля 2012

Я пытаюсь узнать, как получить данные со страницы с помощью php, я вижу, как получить все между тегами, но есть ли способ получить содержимое тегов внутри тегов?

В html ниже, как мне получить доступ к содержимому одного из полужирных интервалов, например второго?

<html>
<div class="padding10">
<span class="bold"></span>
<span class="bold"></span>
<span class="bold"></span>
<span class="bold"></span>
</div>
</html>

Я попробовал следующее, что позволяет мне получить содержимое отступа10Div, но я не знаю, как пойти дальше, чтобы получить смелые пролеты.Все, что я пробовал, не работает.

//gets all
$file_string = file_get_contents('http://www.test.com/index.html');

//gets all in padding10 div
preg_match('/<div class="padding10">(.*)<\/div>/si', $file_string, $padding_10);

//gets all bold spans on padding10 div??
preg_match_all('/<span class="bold">(.*)<\/span>/i', $padding_10[1], $spans_10);

Из того, что я читаю, я начинаю понимать, что это, вероятно, неправильный или неэффективный способ добиться этого, но любая помощь будетотличный.Спасибо.

Ответы [ 2 ]

4 голосов
/ 23 февраля 2012

вы пробовали это ?

2 голосов
/ 23 февраля 2012

Может быть, phpQuery мог бы помочь?

"API на стороне сервера, основанный на использовании CSS3 API Document Object Model (DOM) на основе селектора, основанный на jQuery JavaScript Library."Это позволит вам выбрать материал из разобранного HTML-документа.Это может лучше подходить для разбора / обхода HTML, чем выполнять регулярные выражения "вручную".

http://code.google.com/p/phpquery/

...