0

这是不同域上的 div 代码,我想在我的主页上显示总数。我尝试使用 file_get_html 但它显示所有 div 内容,但我想将数字保存<dd></dd>在变量中并将它们添加并显示在我的页面上。这是div代码

<div class="stats">
    <dl class="statscount">
        <dt>total:</dt>
        <dd>5,299</dd>
    </dl>    
    20000
</div>

这是我当前的代码。

<?php
include 'simple_html_dom.php';
$html = file_get_html('http://www.targetdomain.com');
$result = $html->find('dl[class=statscount]', 0);  //Output: THESE
$result = str_replace(",", "", $result);
echo $result;
?>

但是有一个小问题我不需要获取类中的所有数据,我只需要类中的<dd></dd>标签数据,你能告诉我如何实现这一点。基本上我想获取其中的数字<dd>5,299</dd>并添加来自不同页面的所有数字并在我的网站上显示总数。谢谢

4

2 回答 2

1

我会为此使用XPath,这样您就不需要 simple_html_dom,因为 DOM 和 XPath 是 PHP5 核心的一部分:

$html = <<<EOF
<div class="stats">
  <dl class="statscount">
    <dt>total posts:</dt>
    <dd>5,299</dd>
  </dl>
  20000
</div>
EOF;

$doc = new DOMDocument();
$doc->loadHTML($html);
$selector = new DOMXPath($doc);
$value = $selector
    ->query('//dl[@class="statscount"]/dd/text()')
    ->item(0)
    ->nodeValue;

var_dump($value); // Output: string(5) "5,299"

你可以在这里测试代码

于 2013-06-01T08:58:46.990 回答
0

也许是一个正则表达式

preg_match('/<dd>[^>]*(.*)<\/dd>/', $htmlcode, $matches);
$result = $matches;
于 2013-06-01T09:02:16.993 回答