0

在 PHP 中使用正则表达式如何从该标签中获取 108?

<td class="registration">108</td>
4

2 回答 2

4

正则表达式不是解析 HTML 的好解决方案。改用 DOM 解析器:

$str = '<td class="registration">108</td>';    
$dom = new DOMDocument();
$dom->loadHTML($str);      

$tds = $dom->getElementsByTagName('td');
foreach($tds as $td) { 
    echo $td->nodeValue; 
}

输出:

108

演示!

上面的代码使用方法加载你的 HTML 字符串loadHTML(),找到所有的<td>标签,遍历标签,然后回显节点值。


如果您只想获取特定的类名,可以使用XPath

$dom = new DOMDocument();
$dom->loadHTML($str);      

$xpath = new DomXPath($dom);

// get the td tag with 'registration' class
$tds = $xpath->query("//*[contains(@class, 'registration')]");

foreach($tds as $td) { 
    echo $td->nodeValue;
}

演示!

这与上面的代码类似,只是它使用 XPath 来查找所需的标记。您可以在 PHP 手册文档中找到有关 XPath 的更多信息。这篇文章应该让你开始。

于 2013-09-26T14:57:19.930 回答
-1

如果您想强制使用正则表达式,请使用<td class=["']?registration["']?>(.*)</td>表达式

于 2013-09-26T14:57:27.837 回答