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