【发布时间】:2012-10-14 02:09:18
【问题描述】:
我正在尝试从外部其他域的 span、class、div 中获取内容到我的个人网站。网站www.example.com的源代码是
<div id="h_gold" class="h_metal">
<div class="hm_inside">
<div class="hm_title">Gold</div>
<span class="arr_price_down">- 13.42 <img src="images/downarrow.jpg" alt="down" /></span>
<div class="clear"></div>
<div class="hm_cad">USD</div>
<div class="hm_bottom">
<div> Bid<br />
<span>$1,749.20</span> </div>
<div class="ask"> Ask<br />
<span>$1,750.20</span> </div>
</div>
<!-- .hm_bottom-->
</div>
<!-- hm_inside-->
</div>
<!-- h_metal-->
<div id="h_silver" class="h_metal">
<div class="hm_inside">
<div class="hm_title">Silver</div>
<span class="arr_price_down">- 0.54 <img src="images/downarrow.jpg" alt="down" /></span>
<div class="clear"></div>
<div class="hm_cad">USD</div>
<div class="hm_bottom">
<div> Bid<br />
<span>$33.40</span> </div>
<div class="ask"> Ask<br />
<span>$33.50</span> </div>
</div>
<!-- .hm_bottom-->
</div>
<!-- hm_inside-->
</div>
<!-- h_metal-->
我这里有问题..我尝试了以下代码..但它没有循环,我只从第一个 获取内容,其余部分不在输出中,
<?php
function get_string_between($string, $start, $end)
{
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0)
return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
$data = file_get_contents("http://www.example.com/ajax.php?metal_cur=USD");
$pricediv = get_string_between($data, '<div class="hm_bottom">', '</span>');
$pricetext = strip_tags($pricediv);
echo $pricetext;
?>
其次,我再次搜索 stachoverflow,我发现一个已解决,但并不完全符合我的需求。输出还可以,但我只想将输出中的数字数据放在我定义的特定 div id 中。
<?php
$page = file_get_contents('http://www.example.com/ajax.php?metal_cur=USD');
$doc = new DOMDocument();
$doc->loadHTML($page);
$divs = $doc->getElementsByTagName('div');
foreach($divs as $div) {
// Loop through the DIVs looking for one withan id of "content"
// Then echo out its contents (pardon the pun)
if ($div->getAttribute('class') === 'hm_bottom') {
echo $div->nodeValue;
}
}
?>
以上代码来自stackoverflow的第二次搜索
【问题讨论】:
-
我想要 1,749.20 美元、1,750.20 美元等 .... 将生成的输出中的这些数字放入像 之类的 div 中... 这将导致
- $1,749.20
,- $1,750.20
-
您的搜索目标是否希望/允许您重新使用/抓取他们的内容?偷别人的作品有点不礼貌,而且可能是非法的……
标签: php file-get-contents getelementbyid