Php使用类从url获取值

时间:2013-06-01 08:52:47

标签: php jquery ajax

这是不同域上的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>中的数字并添加不同页面中的所有数字并在我的网站上显示总数。感谢

2 个答案:

答案 0 :(得分: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"

您可以测试代码here

答案 1 :(得分:0)

也许正则表达式

preg_match('/<dd>[^>]*(.*)<\/dd>/', $htmlcode, $matches);
$result = $matches;