2013-10-08 206 views
1

我尝试使用简单的HTML DOM解析器从外部网站获取特定文本。这里是我的代码:使用简单的HTML DOM解析器获取文本值

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 

港元是货币。卖出价格是1502.30,买入价格是1470.40。

如何获得1502.30的值,并在另一个PHP文件中使用它?我希望此值可用于创建自动货币汇率转换。谢谢。

回答

2

找到<tr>块第一,遍历儿童和检索所需的项目:

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

输出:

1502.30 
+0

谢谢,它适用于简单的HTML DOM解析器。我在这里得到了一个教训:) –

0

难道你只是使用爆炸? (假设你总是用空格此类似输出)

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

可能在某些情况下工作,但它不起作用,因为我选择了错误的标签选择器。谢谢。 –

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(); 
} 
+0

这完全解释了一切。谢谢。 –

相关问题