使用Simple HTML DOM Parser获取文本值

时间:2013-10-08 15:08:51

标签: php dom

我尝试使用Simple HTML DOM Parser从外部网站获取特定文本。这是我的代码:

include('simple_html_dom.php');
    $html = file_get_html('http://www.bca.co.id/id/biaya-limit/kurs_counter_bca/kurs_counter_bca_landing.jsp');

foreach ( $html->find('td',13) as $raw) {
    echo $raw->plaintext;
}

到目前为止,我得到一行结果:

HKD 1502.30 1470.40

HKD是货币。 1502.30是卖出价,1470.40是买入率。

如何仅获取1502.30值并在另一个PHP文件中使用它?我想这个值可以用来创建自动货币汇率转换。感谢。

3 个答案:

答案 0 :(得分:2)

首先找到<tr>块,遍历子项并检索所需的项目:

foreach ($html->find('tr',5)->children() as $raw) {
    $values[] = $raw->plaintext;   
}
echo $values[1];

输出:

1502.30

答案 1 :(得分:0)

难道你不能使用爆炸吗? (假设你总是得到像空格那样的输出)

$value = explode(" ",$raw->plaintext);
echo $value[1]; //your desired value

答案 2 :(得分:0)

原始HTML是:

<tr>
    <td style="text-align:center;">HKD</td>
    <td style="text-align:right;">1502.30</td>
    <td style="text-align:right;">1470.40</td>
    <!-- kolom dua -->
</tr>

...所以这三个值已经分开了。你显然只是没有存储它们,而只是打印它们:

foreach ( $html->find('td',13) as $raw) {
    echo $raw->plaintext;
}

我从未使用过该库,但首先找到<tr>更有意义。然后,匹配相关值没有问题:

// Completely untested (I even made up the function names)
foreach ($html->find('tr') as $tr) {
    $cells = $tr->find('td');
    $currency = $cells[0]->getValue();
    $sell = $cells[1]->getValue();
    $buy = $cells[2]->getValue();
}