Script PHP Mengambil Nilai Tukar Valuta Asing
Berikut adalah script php untuk menampilkan kondisi mata uang valuta asing mengambil data yang bersumber dari http://www.klikBCA.com.
Dengan dua metode, menggunakan curl atau juga bisa menggunakan file_get_content().
Pertama-tama kita buat file fungsi_kurs_bca.php, yg isinya sbb.:
<?php /* Ambil Nilai Valuta Kurs Dari BCA Versi 1.0 Tanggal: 2008-11-19 22:17 Original dari azza (broadband.or.id/forum/) dimodif oleh: jinbatsu (http://www.nusansifor.com) yg dimodif: - menggunakan CURL sebagai alternatif dari file_get_contents (hususnya buat yg gak bisa di hostingan2 tertentu) - penempatan output titik koma dan tanda petik yg mengakibatkan fatal error dibeberapa hostingan - menambah number format, supaya terlihat ada titik pada ribuan nya */ error_reporting (E_ALL); // // Ubah menjadi 3600 untuk cache 1 jam, ketika semuanya sudah berjalan normal. // Menggunakan cache berarti tidak perlu membuka koneksi ke klikbca // setiap kali halaman dibuka << ini PENTING! menghemat waktu, dan mengurangi proses server. // $nkurs['cachetime'] = 3600; /* ubah jadi 3600 atau lebih */ // // Hilangkan mata uang yang tidak mau ditampilkan. // $nkurs['curr'] = array ('USD', 'SGD', 'HKD', 'CHF', 'GBP', 'AUD', 'JPY', 'SEK', 'DKK', 'CAD', 'EUR', 'SAR'); // // Dari sini kebawah, ubah kalau mengerti aja. // Atau tanya dulu di: broadband.or.id/forum/viewforum.php?f=7 (database forumnya sekarang udah gak ada, silahkan dicek lagi) // // menggunakan CURL, jika file_get_contents tidak bisa dihostingan Anda, baca manual PHP untuk selengkapnya function curl_get_file_contents($URL) { $c = curl_init(); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_URL, $URL); $contents = curl_exec($c); curl_close($c); if ($contents) return $contents; else return FALSE; } $nkurs['scriptpath'] = dirname (__FILE__); $nkurs['cachefile'] = $nkurs['scriptpath'] . '/cache.txt'; if (!file_exists ($nkurs['cachefile']) || !is_writable ($nkurs['cachefile'])){ die ('File cache.txt belum ada atau belum writable.<br />Buat file: <code>' . $nkurs['cachefile'] . '</code><br />Lalu CHMOD ke 666'); } if (filemtime ($nkurs['cachefile']) <= ( time () - $nkurs['cachetime'] ) && $handle = curl_get_file_contents("http://www.klikbca.com/individual/silver/ind/rates.html")) { $handle = explode ('<table border="0" cellspacing="0" cellpadding="0" class="testL">', $handle); $handle = explode ('</table>', $handle[1]); $handle = explode ('<TR', $handle[0]); $nkurs['data'] = array (); foreach ($handle as $val) { if (!isset ($nkurs['remotelastupdate'])) { $nkurs['remotelastupdate'] = explode ('<font color="black" size="1" face="Arial">', $val); $nkurs['remotelastupdate'] = explode ('</font>', $nkurs['remotelastupdate'][1]); $nkurs['remotelastupdate'] = explode ('/', $nkurs['remotelastupdate'][0]); $nkurs['remotelastupdate'] = trim ($nkurs['remotelastupdate'][0]) . ' / ' . trim ($nkurs['remotelastupdate'][1]); } else { $val = explode ('<center>', $val); $val = explode ('</center>', $val[1]); $curr = trim (str_replace (' ', '', $val[0])); $val = explode (' ', $val[1]); $sell = explode ('align="right">', $val[0]); $sell = trim ($sell[1]); $buy = explode ('align="right">', $val[1]); $buy = trim ($buy[1]); $nkurs['data'][$curr] = array ($sell, $buy); } } $tocache = array (); foreach ($nkurs['data'] as $key => $val) { $tocache[] = $key . '|' . $val[0] . '|' . $val[1]; } $tocache[] = 'remotelastupdate|' . $nkurs['remotelastupdate']; $tocache = implode ("\n", $tocache); $handle = fopen ($nkurs['cachefile'], 'w'); fwrite ($handle, $tocache); fclose ($handle); } else { $handle = file ($nkurs['cachefile']); $nkurs['data'] = array (); foreach ($handle as $val) { $val = explode ('|', $val); if ($val[0] != 'remotelastupdate') { $nkurs['data'][$val[0]] = array ($val[1], trim ($val[2])); } else { $nkurs['remotelastupdate'] = $val[1]; } } } // // Output // $output = "\n"; $margin = ''; $output .= $margin . '<div id="nKurs">' . "\n"; $output .= $margin . ' <table width="100%" border="0" cellspacing="1" cellpadding="0">' . "\n"; $output .= $margin . ' <tr><th>Mata Uang</th><th>Jual</th><th>Beli</th></tr>' . "\n"; $rowclass = 'row1'; foreach ($nkurs['data'] as $key => $val) { if (in_array ($key, $nkurs['curr'])) { if ($rowclass == 'row1'){ $rowclass = 'row2'; }else{ $rowclass = 'row1'; } $output .= $margin . ' <tr><td align="center" class="curr ' .$rowclass . '">' . $key . '</td><td align="right" class="' . $rowclass . '">' . number_format($val[0], 2) . '</td><td align="right" class="' . $rowclass . '">' . number_format($val[1], 2) . '</td></tr>' . "\n"; } } $output .= $margin . ' </table>' . "\n"; $output .= $margin . ' <cite><a href="http://www.klikbca.com/" rel="external" title="Source: KlikBCA">' . $nkurs["remotelastupdate"] . '</a></cite>' . "\n"; $output .= $margin . '</div>' . "\n"; echo $output; ?>
Lalu kita siapkan file berikutnya kurs_bca.php, yaitu sbb.:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Nilai Tukar Mata Uang Asing dari KlikBCA</title>
<link href="kurs_bca.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
include_once("fungsi_kurs_bca.php");
?>
</body>
</html>Dan untuk men-design tampilan lebar dan warna, kita buat file kurs_bca.css, yg isinya sbb.:
#nKurs { width: 170px; background: #FFFFFF; padding: 1px; } #nKurs table { border: 1px solid #333399; font-family: Verdana, Arial, Helvetica, sans-serif; } #nKurs table th { color: #FFFFFF; background-color: #333399; font-size: 10px; padding: 2px 0px; } #nKurs table td { font-size: 10px; color: #333399; padding: 1px 2px; } #nKurs table td.curr { font-weight: bold; } #nKurs table td.row1 { background-color: #EEF1F6; } #nKurs table td.row2 { background-color: #EBF2FF; } #nKurs cite { display: block; color: #333399; font-style: normal; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; text-align: center; } #nKurs a:link, #nKurs a:visited { color: #333399; text-decoration: none; } #nKurs a:hover { color: #FF0000; }
Demo: klik disini
Download file contoh script komplit nya:
kurs_bcaV2.rar (2.6 KiB, 1,550 hits)
semoga bermanfaat ![]()
oya tambahan, untuk menggunakan metode fungsi file_get_contents(), ubah code
curl_get_file_contents("alamat url nya")
menjadi:
file_get_contents("alamat url nya", "r")
thx to balaiweb atas suggest nya.
jika ada masukan lain, silahkan share…
UPDATE:
link url klik bca exchange rate berubah (file download sudah termasuk perubahan alamat url nya)
PERHATIAN!!
untuk mencoba script berjalan dgn baik, silahkan diubah variabel berikut:
$nkurs['cachetime'] = 3600;
menjadi:
$nkurs['cachetime'] = 0;
Setelah OK, ubah kembali menjadi 3600 atau lebih, untuk hemat resource.


1
0
50 Comments on “Script PHP Mengambil Nilai Tukar Valuta Asing”
Boleh nanya bos, bedanya file html dengan php itu apa ya? maaf ni masih belajar, terus imlplementasinya bgm? kalo biasanya saya ada script gitu langsung copy paste aja ke HTML di blog. Tapi yang ini saya kok gak bisa ya…. he..he
Like or Dislike: