Помощь по шаблону preg_match - PullRequest
0 голосов
/ 06 апреля 2010

Я хочу проанализировать HTML-контент, который имеет что-то вроде этого:

<div id="sometext">Lorem<br> <b>Ipsun</b></div><span>content</span><div id="block">lorem2</div>

Мне нужно поймать только "Lorem<br> <b>Ipsun</b>" внутри первого div. Как мне этого добиться?

Ps: HTML внутри первого div есть несколько строк, это статья.

Спасибо

Ответы [ 2 ]

4 голосов
/ 06 апреля 2010

Попытка использовать регулярные выражения для разбора HTML не очень приятный опыт, поскольку HTML не является обычным языком. Альтернативой может быть использование синтаксического анализатора HTML, например Simple HTML DOM или библиотеки DOM /

Простой пример HTML DOM:

$html = str_get_html('<div id="sometext">Lorem<br> <b>Ipsun</b></div><span>content</span><div id="block">lorem2</div>');
echo $html->find('div[id=sometext]', 0)->innertext;
0 голосов
/ 06 апреля 2010

Предполагая, что id известен:

preg_match('#<div id="sometext">(.*?)</div>#s', $text, $match);
...