Disini kita akan belajar cara untuk mengambil konten dari situs lain, pada contoh kasus ini kita mengambil data kurs dari situs HSBC Indonesia. Script lengkapnya bisa anda download dibawah

1. Parsing HTML

Untuk mem-parsing HTML dari halaman web yang akan di download, kita akan menggunakan bantuan PHP Simple HTML DOM Parser. Bila anda ingin menggunakan parser DOM bawaan PHP bisa dilihat di PHP DOM MANUAL. Untuk memudahkan pemula disini kita menggunakan PHP Simple HTML DOM Parser.

2.Sekilas Info

Link Kurs HSBC ada di https://www.hsbc.co.id/1/2/id/personal/foreign-exchange/real-time-fx-rates. Untuk mengetahui bagian mana yang akan kita ambil, view source website tersebut. Singkat cerita HSBC menyimpan data kursnya di variabel javascript, jadi semakin mudah untuk diolah.
hsbc menggunakan javascript
yang perlu di ingat dalam parsing data dari website adalah dari mana awalnya kita akan mengambil data, dan dimana akhir dari data yang akan kita ambil. Kalo menggunakan tabel (table) HTML biasanya kita akan mengambil data diantara

<table>
 
</table>

karena disini tidak menggunakan tabel, maka kita akan mengambil mulai dari var FXRATES = sampai ;

3.Script Lengkap

<?php
 
include_once 'simple_html_dom.php';
 
function ambilURL($url) {
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36");
	curl_setopt($curl, CURLOPT_URL, $url);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	$hasil = curl_exec($curl);
	$curl_error = curl_error($curl);
	$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
	curl_close($curl);
	return $hasil;
}
 
$urlBank = ambilURL('https://www.hsbc.co.id/1/2/id/personal/foreign-exchange/real-time-fx-rates');
$html = str_get_html($urlBank);
 
$pecahAwal = explode('var FXRATES =', $html);
$pecahAkhir = explode(';', $pecahAwal[1]);
 
preg_match_all("/\[([^\]]*)\]/", $pecahAkhir[0], $output_array);
 
$data = $output_array[1];
$kurs = array();
foreach ($data as $key => $value) {
	$pecah = explode(',', $value);
	$kurs[] = preg_replace("/[^A-Za-z0-9]/", '', $pecah);
}
var_dump($kurs);

hasil dari perintah diatas

array(11) {
  [0]=>
  array(3) {
    [0]=>
    string(3) "USD"
    [1]=>
    string(5) "13460"
    [2]=>
    string(5) "14060"
  }
  [1]=>
  array(3) {
    [0]=>
    string(3) "AUD"
    [1]=>
    string(5) "10324"
    [2]=>
    string(5) "10857"
  }
  [2]=>
  array(3) {
    [0]=>
    string(3) "GBP"
    [1]=>
    string(5) "18813"
    [2]=>
    string(5) "19745"
  }
  [3]=>
  array(3) {
    [0]=>
    string(3) "HKD"
    [1]=>
    string(4) "1715"
    [2]=>
    string(4) "1793"
  }
  [4]=>
  array(3) {
    [0]=>
    string(3) "EUR"
    [1]=>
    string(5) "16464"
    [2]=>
    string(5) "17267"
  }
  [5]=>
  array(3) {
    [0]=>
    string(3) "JPY"
    [1]=>
    string(3) "126"
    [2]=>
    string(3) "132"
  }
  [6]=>
  array(3) {
    [0]=>
    string(3) "SGD"
    [1]=>
    string(5) "10188"
    [2]=>
    string(5) "10677"
  }
  [7]=>
  array(3) {
    [0]=>
    string(3) "CHF"
    [1]=>
    string(5) "14056"
    [2]=>
    string(5) "14747"
  }
  [8]=>
  array(3) {
    [0]=>
    string(3) "CAD"
    [1]=>
    string(5) "10285"
    [2]=>
    string(5) "10801"
  }
  [9]=>
  array(3) {
    [0]=>
    string(3) "NZD"
    [1]=>
    string(4) "9636"
    [2]=>
    string(5) "10136"
  }
  [10]=>
  array(3) {
    [0]=>
    string(3) "RMB"
    [1]=>
    string(4) "2124"
    [2]=>
    string(4) "2222"
  }
}

karena data kurs sudah dalam bentuk array, tinggal pilih mau di simpan ke database atau di tampilkan kedalam tabel ataupun pilihan lainnya.

4. Menampilkan Data Kurs kedalam Tabel

hapus var_dump($kurs) pada script diatas, gantikan dengan

echo "<table border='1'>
    <thead>
        <tr>
            <th>KURS</th>
            <th>BELI</th>
            <th>JUAL</th>
        </tr>
    </thead>
    <tbody>";
 
foreach ($kurs as $key => $value) {
	echo "<tr>";
	echo "<td>$value[0]</td>";
	echo "<td>$value[1]</td>";
	echo "<td>$value[2]</td>";
	echo "<tr>";
}
echo "</tbody>
</table>";

cek hasilnya di browser
kurs hsbc kedalam tabel

Download “kurs-bank-hsbc.tar.gz”

kurs-bank-hsbc.tar.gz – Downloaded 559 times – 14.88 KB

Join the Conversation

1 Comment

Your email address will not be published. Required fields are marked *

  1. Bang mau tanya, kalau mau ambil data pada google map bagaimana.
    Contoh : kita menggunakan google map dan menentukan titik lokasi kita, lalu kita akan mengambil MAP nya saja atau kalau bisa hanya mengambil keterangan lokasi titik kita.
    Study Kasus : kita punya GPS dalam mobil kita dan secara default kita hanya bisa melihat titik keberadaan mobil kita lewat Google map.
    tapi karena kita hanya ingin mendapatkan keterangan data titik saja dan ditampilkan dalam PHP bagaimana ya.
    1. Imei : XXXXx
    2. Imsi : XXXXX
    3. LAC : XXXXX
    4. Alamat : XXXXX
    5. Url Gmap : https://googleXXXXXXX

    Maaf keteranganya belepotan.
    terimakasih.