<td>
个内的各种值。
我想知道什么是最简单和最好的方法,我只能提取<td>
内的所有值,所以我有空白值而没有剩余的html。
知道preg_match的模式应该是什么样的吗?
谢谢。答案 0 :(得分:2)
正则表达式不是一个合适的解决方案。你最好在DOMDocument中加载并解析它。
答案 1 :(得分:1)
您不应该使用regexps来解析HTML。请改用DOM和XPath。这是一个例子:
$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$nodes = $xpath->query('//td');
$result = array();
foreach ($nodes as $node) {
$result[] = $node->nodeValue;
}
// $result holds the values of the tds
答案 2 :(得分:1)
您打算使用DOM解析器完成该任务:
$html = <<<HTML
<div>
<table>
<tr>
<td>foo</td>
<td>bar</td>
</tr>
<tr>
<td>hello</td>
<td>world</td>
</tr>
</table>
</div>
<div>
Something irrelevant
</div>
HTML;
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$tds = $xpath->query('//div/table/tr/td');
foreach ($tds as $cell) {
echo "{$cell->textContent}\n";
}
输出:
foo
bar
hello
world
答案 3 :(得分:0)
只有当你有非常有限的,定义明确的HTML时,你才能期望用正则表达式解析它。 highest ranked SO answer of all time解决了这个问题。
他来了......