我需要从这个html中删除号码622104
我如何获得该号码?
<div class="numbersBackground">
<div id="ctl00_mainContent_playersOnlineNumberRepeater_ctl00_numberPanel" class="number">
<div class="numberWrapper"><span>6</span></div>
</div><div id="ctl00_mainContent_playersOnlineNumberRepeater_ctl01_numberPanel" class="number">
<div class="numberWrapper"><span>2</span></div>
</div><div id="ctl00_mainContent_playersOnlineNumberRepeater_ctl02_numberPanel" class="number">
<div class="numberWrapper"><span>2</span></div>
</div><div id="ctl00_mainContent_playersOnlineNumberRepeater_ctl03_commaPanel" class="comma">
</div><div id="ctl00_mainContent_playersOnlineNumberRepeater_ctl04_numberPanel" class="number">
<div class="numberWrapper"><span>1</span></div>
</div><div id="ctl00_mainContent_playersOnlineNumberRepeater_ctl05_numberPanel" class="number">
<div class="numberWrapper"><span>0</span></div>
</div><div id="ctl00_mainContent_playersOnlineNumberRepeater_ctl06_numberPanel" class="number">
<div class="numberWrapper"><span>4</span></div>
</div>
</div>
答案 0 :(得分:2)
使用DOMDocument
类来解析HTML字符串,感谢其loadHTML
方法,您可以使用XPath查询(使用DOMXpath
类)查找具有<div>
属性的所有class="numberWrapper"
代码。
然后,迭代它们,将它们的内容连接到一个变量 - 在循环结束时,它将包含你的数字。
例如,您可以使用这种代码:
$str = <<<HTML
... HERE YOUR HTML ...
HTML;
$number = '';
$dom = new DOMDocument();
if ($dom->loadHTML($str)) {
$xpath = new DOMXpath($dom);
$results = $xpath->query('//div[@class="numberWrapper"]');
foreach ($results as $div) {
$number .= $div->nodeValue;
}
}
var_dump($number);
而且,作为输出,你会得到:
string '622104' (length=6)
您还可以使用以下XPath查询,以确保您只使用<span>
标记:
$results = $xpath->query('//div[@class="numberWrapper"]/span');
此处,由于<div>
仅包含<span>
,因此结果将相同 - 但在其他情况下可能会发生变化。
当然(只是为了确保说明):正则表达式不是从HTML字符串中提取信息的正确方法。
在评论后修改:
如果您不想考虑其他<div>
,则必须找到另一个与您要提取的内容匹配的XPath查询。
例如,也许这样的事情可以解决问题:
$results = $xpath->query('//div[@class="numbersBackground"]//div[@class="numberWrapper"]/span');
当然,由您决定找出与您的HTML文档结构完全匹配的内容。
如果要下载HTML,则有两种解决方案:
allow_url_fopen
,则可以使用DOMDocument::loadHTMLFile()
,并将URL作为参数传递给它。
作为旁注,如果您在HTML无效之前收到警告,则需要查看libxml_use_internal_errors()
函数; - )