2013-10-08 2 views
1

Я пробую простой HTML DOM Parser, чтобы получить конкретный текст с внешнего сайта. Вот мой код:Получить текстовое значение с помощью простого 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? Я хочу, чтобы это значение можно было использовать для создания автоматического конвертации курсов валют. Благодарю.

ответ

2

Найти <tr> первый блок, петля через детей и получить элемент, который вы хотите:

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

Выход:

1502.30 
+0

Спасибо, он работает с простым HTML DOM Parser. У меня есть урок здесь :) –

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> «s первым. Тогда нет никаких проблем, сопоставляя значения, связанные с:

// 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

Это все объясняет полностью. Спасибо. –

Смежные вопросы