Friday 11 December 2015

Download Script Cek Ongkir JNE menggunakan PHP Curl





Pada Kesempatan ini, Kita akan mempelajari membuat script cek ongkir TIKI dengan menggunakan cURL. Data ongkir langsung diambil dari web Tiki, kemudian dilakukan parsing untuk mengambil bagian tertentu yang kita inginkan.
Ada 3 tahapan utama dalam script ini yaitu:
1. Script pengambilan data kota
2. Script pengambilan web hasil perhitungan tarif
3. Parsing halaman web

Script pengambilan Data Kota kurir TIKI

Pengambilan database yang berisi nama-nama kota yang terdaftar dalam jaringan tiki tidaklah sulit. Andapun bisa melakukannya tanpa script yaitu langsung mengetikkan alamat http://www.tiki-online.com/lib/cariori.php di browser Anda dan data nama KOTA Kecamatan yang masuk kedalam jaringan TIKI akan muncul di halaman browser anda.


function getKOTA(){
    $hasil = file_get_contents("http://www.tiki-online.com/lib/cariori.php");
    $hasil = explode("n", $hasil);
    return $hasil;
}

Kemudian Data Kota tersebut kita jadikan bahan input di form. Kita menggunakan metode dengan tag <datalist> agar mudah difahami. Namun karena datanya yang sangat banyak, maka akan terjadi loading time beberapa detik. Script untuk membuat datalist di input form adalah sebagai berikut:

<form action="tiki.php" method="post">
  Dari: <input list="asalkota" name="asal">
  <datalist id="asalkota">
  <?php
    foreach ($listKota as $kota) {
     # code...
     echo '<option value="'.$kota.'">';
     echo "\n";
    }
  ?>
  </datalist>
  Ke: <input list="tujuankota" name="tujuan">
  <datalist id="tujuankota">
  <?php
    foreach ($listKota as $kota) {
     # code...
     echo '<option value="'.$kota.'">';
     echo "\n";
    }
  ?>
  </datalist>
  Berat:<input type="number" name="berat">
  <input type="submit" value="Cek Tarif">
</form>
 
  

Sehingga menghasilkan tampilan yang sangat simple namun bisa autocomplete karena menggunakan tag datalist
autocomplete membuat script cek ongkir sampai di tahapan ini kita sudah menyelesaikan script pengambilan data kota dan mengimplementasikannya di form. Jika Anda sudah faham AJAX, penggunaan AJAX bisa lebih menghemat waktu loading / menambah kecepatan. Silahkan improvisasi sendiri

2. Script mengambil Halaman info tarif di TIKI

Setelah form dibuat, kemudian di klik submit, langkah selanjutnya adalah mengirimkan informasi tersebut ke tiki dan kemudian merecord hasilnya dengan cURL. scripnya sebagai berikut:




function parseTIKI($html){
 //$htmltiki = file_get_contents($tiki);
 $htmltiki = str_replace(" _\n\t\t"," ", $html);
 $hasil = explode("</table>


", $htmltiki);
 $hasil = $hasil[2];
 $hasil = explode("</font></td>


</tr>


",$hasil);
 $hasil = $hasil[1];
 $hasil = explode("align='left'>- ",$hasil);
 //$htmltarrif = str_get_html($hasil);
 $hasilnya ="";
 foreach ($hasil as $key ) {
  # code...
  $hasiltmp = pangkas($key);
  $hasilnya .= $hasiltmp."
\n";
   }
  return $hasilnya; 
}
 

 
 

3. Parsing Halaman Web

Script parsing yang saya buat disini adalah hasil trial error. Bisa saja hasil script yang Anda buat jauh lebih bagus dari yang HUMAYRAA hasilkan:


function parseTIKI($html){
 //$htmltiki = file_get_contents($tiki);
 $htmltiki = str_replace(" _\n\t\t"," ", $html);
 $hasil = explode("</table>


", $htmltiki);
 $hasil = $hasil[2];
 $hasil = explode("</font></td>


</tr>


",$hasil);
 $hasil = $hasil[1];
 $hasil = explode("align='left'>- ",$hasil);
 //$htmltarrif = str_get_html($hasil);
 $hasilnya ="";
 foreach ($hasil as $key ) {
  # code...
  $hasiltmp = pangkas($key);
  $hasilnya .= $hasiltmp."
\n";
   }
  return $hasilnya; 
}
Script lengkapnya adalah sebagai berikut:
<?php
/***************************************
Script untuk mengambil ongkir Tiki
langsung melalui web tiki-online.com
dengan menggunakan cURL dan html parsing

Copyright (c)2015 by Tanto Prihartanto
Published by Humayraa.com via GitHub

****************************************/


function pangkas($html){
 $hasilnya = $html;
 $hasilnya = str_replace("</td>




<td width='80%'>", ":", $hasilnya);
 $hasilnya = str_replace("


<tr bgcolor=#fedfd1>


<td width='30%'", "", $hasilnya);
 $hasilnya = str_replace("


<tr bgcolor=#fcc2a8>


<td width='30%'", "", $hasilnya);
 $hasilnya = str_replace("</td>


</tr>


", "", $hasilnya);
 $hasilnya = str_replace(",", "", $hasilnya);
 $hasilnya = str_replace("</td>




<td _", "", $hasilnya); $hasilnya = str_replace("width='80%'>", " Rp ", $hasilnya);
 return $hasilnya;
}

/* CARA GRAB TIKI */

function getKOTA(){
    $hasil = file_get_contents("http://www.tiki-online.com/lib/cariori.php");
 $hasil = explode("\n", $hasil);
 return $hasil;
}


function grabTIKI($dari,$ke,$berat){
 $ch = curl_init();
 $url="http://www.tiki-online.com/?cat=KgfdshfF7788KHfskF";
 $params = "&get_ori=".$dari."&get_des=".$ke."&get_wg=".$berat."&submit=Check";
 curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 );
 curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 );
 curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 0 );
 curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
 curl_setopt( $ch, CURLOPT_URL, $url);
 curl_setopt( $ch, CURLOPT_POSTFIELDS, $params );
 $hasil = curl_exec( $ch );
 return $hasil; 
}

function parseTIKI($html){
 //$htmltiki = file_get_contents($tiki);
 $htmltiki = str_replace(" _\n\t\t"," ", $html);
 $hasil = explode("</table>


", $htmltiki);
 $hasil = $hasil[2];
 $hasil = explode("</font></td>


</tr>


",$hasil);
 $hasil = $hasil[1];
 $hasil = explode("align='left'>- ",$hasil);
 //$htmltarrif = str_get_html($hasil);
 $hasilnya ="";
 foreach ($hasil as $key ) {
  # code...
  $hasiltmp = pangkas($key);
  $hasilnya .= $hasiltmp."
\n";
   }
  return $hasilnya; 
}


$asalkota = $_POST['asal'];
$tujuankota = $_POST['tujuan'];
$berat = $_POST['berat'];
if ($asalkota == ""){
$listKota = getKOTA();
?>


<form action="tiki.php" method="post">
  Dari: <input list="asalkota" name="asal">
  <datalist id="asalkota">
  <?php
    foreach ($listKota as $kota) {
     # code...
     echo '

<option value="'.$kota.'">';
     echo "\n";
    }
  ?>
  </datalist>
  Ke: <input list="tujuankota" name="tujuan">
  <datalist id="tujuankota">
  <?php
    foreach ($listKota as $kota) {
     # code...
     echo '

<option value="'.$kota.'">';
     echo "\n";
    }
  ?>
  </datalist>
  Berat:<input type="number" name="berat">
  <input type="submit" value="Cek Tarif">
</form>

<?php }


if ($asalkota !=""){
echo "Asal : ".$asalkota."
\n";
echo "Tujuan : ".$tujuankota."
\n";
echo "Berat : ".$berat."
\n";
 $hasil = grabTIKI($asalkota,$tujuankota,$berat);
// print_r($hasil);
 $hasil = parseTIKI($hasil);
 echo "


<h2>TARIF</h2>


";
 echo $hasil;
}
?>




 
 
Thanks to: humayraa.com 

0 Orang Berkomentar:

Post a Comment

Sempatkanlah sedikit waktu untuk mengomentari Postingan Blogku, karna orang yang baik , adalah orang yang meninggalkan Komentar setelah Membaca! Terima Kasih !!
Untuk yang tidak memiliki Account, silahkan pilih Beri komentar sebagai: Anomymous