2013-06-01 37 views
0

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

<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>中的号码,并添加来自不同页面的所有号码,并在我的网站上显示总数。由于

回答

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

+0

+1没有告诉使用至REGx并给予更好的方法:) –

+0

DIV的代码页是在不同的领域,我们正在获取数据,这个代码将如何工作。谢谢 – vbulletinpro

+0

然后你必须使用'$ html = file_get_contents('http://server.com/page.html');' – hek2mgl

0

也许正则表达式

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

检索内容使用正则表达式从DOMDocument中提取信息不是一个好主意在多数情况下。在现实世界的例子中,它往往会变得混乱。 – hek2mgl