2010-04-18 4 views

ответ

0

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

Если вы используете XHTML, вы можете использовать SimpleXML, чтобы проанализировать его как XML и запросить его с помощью SimpleXMLElement::xpath. А для документов HTML вы можете использовать Simple HTML DOM Parser. И DOMDocument может обрабатывать как XHTML, так и HTML.

+0

Я не gonns разбора HTML Я просто получаю содержание в теги –

+0

@kk: Но вам нужно разобрать HTML-код, чтобы получить правильное содержимое. – Gumbo

+0

<тр ID = 'ieconn2'> <ширина таблицы = '100%'><тд VALIGN = 'сверху'><таблица ширина = '100%'> ЭТА ЧАСТЬ ТОЛЬКО
Я хочу, чтобы получить ЭТОТ ЧАСТЬ ТОЛЬКО, но она дает мне 1 дочерний узел. и без каких-либо html-тегов я не могу preg_replace? –

0

Как указал Гумбо, это приведет только к гигантскому беспорядку, если вы настаиваете на использовании регулярного выражения для этого. Однако, если вы уверены, что HTML не случайно, это один будет делать трюк:

/<tr><td>(.*)<\/td><\/tr>/

использовать так:

$string = "<tr id='ieconn3' > 
<td><table width='100%'><tr><td valign='top'><table width='100%'><tr><td>aaaaa<br>&nbsp;</td></tr><tr><td>"; 

$matches = array(); 
preg_match("/<tr><td>(.*)<\\/td><\\/tr>/", $string, $matches); 

print($matches[1]);