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, 2,230 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.

