Mengambil Data Website Sekolah Seluruh Indonesia Dengan PHP CURL
Pendahuluan
PHP mendukung libcurl, yaitu sebuah library yang di buat oleh Daniel Stenberg, dengan PHP CURL ini dapat memungkinkan anda untuk terhubung dengan berbagai jenis server dan berbagai jenis protokol atau juga dapat di sebut mengambil data dari website lain. Libcurl saat ini mendukung berbagai protokol dari HTTP, HTTPS, FTP, GOPHER, TELNET, DICt, FILE, dan IDAP. Libcurl juga mendukung HTTPS, HTTP POS, HTTP PUT, Uploat FTP (hal iini bisa dilakukan dengan Extensi ftp PHP), form upload berbasis HTTP, Proxy, Cookies, dan otentifikasi User + Password.
Persyaratan
Untuk anda jika ingin menggunakan fungsi cURL PHP anda perlu menginstal paket libcurl. Versi libcurl yang terbaru saat ini adalah versi 7.10.5.
apabila anda tidak ingin menginstal libcurl tersebut anda juga dapat menginstal paket XAMPP yang bisa di dawnload di web "https://www.apachefriends.org/index.html" dawnload XAMPP tersebut dan instal.
Mengambil data dengan cURL
Langkah pertama yang harus di lakukan yaitu mencari website atau alamat web yang akan kita ambil datanya dengan cURL ini. disini saya mengambil alamat web kementrian pendidikan dan kebudayaan.
Tampilan laman web tersebut kita inspek elemen dengan menekan CTRL + Shift + i pada Google Crome dan Klik kanan > Inspek Elemen pada Mozila Firefox setelah itu cari kode dimana data tersebut akan kita ambil. perhatikan gambar dibawah.
Dari gambar dapat di analisa bahwa data yang akan di ambil berada pada "<div id="tabs-1".....>"
oke data yang akan kita ambil sudah dapat. Selanjutnya mari kita ngoding.
Buat sebuah file index.php lalu copy dan pastekan kode berikut.
Kode diatas digunakan untuk membuat sebuah kotak pencarian dengan 1 input type number dan 1 button submit.
Langkah selanjutnya tambahkan kode php berikut pada index.php
<?php
function bacaHTML($url){
// inisialisasi CURL
$data = curl_init();
// setting CURL
curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($data, CURLOPT_URL, $url);
// menjalankan CURL untuk membaca isi file
$hasil = curl_exec($data);
curl_close($data);
return $hasil;
}
$kode = @$_POST['kode'];
$cari = @$_POST['cari'];
if($cari) {
if($kode != "") {
$kodeHTML = bacaHTML('http://referensi.data.kemdikbud.go.id/tabs.php?npsn='.$kode); //sumber content
$pecah = explode('id="tabs-1">', $kodeHTML);
$pecah2 = explode('id="tabs-2">', $kodeHTML);
$pecah3 = explode('id="tabs-3">', $kodeHTML);
$pecah6 = explode('id="tabs-6">', $kodeHTML);
$pecahgambar = explode('class="galleryWrap cf">', $kodeHTML);
$pecahLagi2 = explode('</div>', $pecahgambar[1]);
$pecahLagiisi1 = explode('</table>', $pecah[1]);
$pecahLagiisi2 = explode('</table>', $pecah2[1]);
$pecahLagiisi3 = explode('</table>', $pecah3[1]);
$pecahLagiisi4 = explode('</table>', $pecah6[1]);
//css table sesuaikan dengan format css web anda
echo $pecahLagi2[0], $pecahLagiisi1[0], $pecahLagiisi2[1], $pecahLagiisi3[0], $pecahLagiisi4[0]; }
}
?>
function bacaHTML($url){
// inisialisasi CURL
$data = curl_init();
// setting CURL
curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($data, CURLOPT_URL, $url);
// menjalankan CURL untuk membaca isi file
$hasil = curl_exec($data);
curl_close($data);
return $hasil;
}
$kode = @$_POST['kode'];
$cari = @$_POST['cari'];
if($cari) {
if($kode != "") {
$kodeHTML = bacaHTML('http://referensi.data.kemdikbud.go.id/tabs.php?npsn='.$kode); //sumber content
$pecah = explode('id="tabs-1">', $kodeHTML);
$pecah2 = explode('id="tabs-2">', $kodeHTML);
$pecah3 = explode('id="tabs-3">', $kodeHTML);
$pecah6 = explode('id="tabs-6">', $kodeHTML);
$pecahgambar = explode('class="galleryWrap cf">', $kodeHTML);
$pecahLagi2 = explode('</div>', $pecahgambar[1]);
$pecahLagiisi1 = explode('</table>', $pecah[1]);
$pecahLagiisi2 = explode('</table>', $pecah2[1]);
$pecahLagiisi3 = explode('</table>', $pecah3[1]);
$pecahLagiisi4 = explode('</table>', $pecah6[1]);
//css table sesuaikan dengan format css web anda
echo $pecahLagi2[0], $pecahLagiisi1[0], $pecahLagiisi2[1], $pecahLagiisi3[0], $pecahLagiisi4[0]; }
}
?>
Penjelasan dari function di bawah ini digunakan untuk membaca sebuah html yang nantinya akan di buat ke web kita.
<?php
function bacaHTML($url){
// inisialisasi CURL
$data = curl_init();
// setting CURL
curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($data, CURLOPT_URL, $url);
// menjalankan CURL untuk membaca isi file
$hasil = curl_exec($data);
curl_close($data);
return $hasil;
}
function bacaHTML($url){
// inisialisasi CURL
$data = curl_init();
// setting CURL
curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($data, CURLOPT_URL, $url);
// menjalankan CURL untuk membaca isi file
$hasil = curl_exec($data);
curl_close($data);
return $hasil;
}
Karena pada tutorial ini membuat kotak pencarian dengan methot POST maka kita ambil data dari post tersebut.
<form action="" method="post">
<input type="number" name="kode" placeholder="Cari kode npsn Sekolah" class="css-input" style="width:250px;" />
<input type="submit" name="cari" value="Cari" class="btn" style="padding:3px;" margin="6px;" width="50px;" />
</form>
<input type="number" name="kode" placeholder="Cari kode npsn Sekolah" class="css-input" style="width:250px;" />
<input type="submit" name="cari" value="Cari" class="btn" style="padding:3px;" margin="6px;" width="50px;" />
</form>
$kode = @$_POST['kode'];
$cari = @$_POST['cari'];
$cari = @$_POST['cari'];
Menggabungkan antara kode yang di input di pencarian dan kita jadikan 1 variabel
$kodeHTML = bacaHTML('http://referensi.data.kemdikbud.go.id/tabs.php?npsn='.$kode); //sumber content
lalu parse data yang kita ambil dan tampilkan sehingga kode lengkapnya seperti ini
<!DOCTYPE html>
<html>
<head>
<title>Data Sekolahku</title>
</head>
<body>
<div style="margin-bottom:15px;" align="left">
<form action="" method="post">
<input type="number" name="kode" placeholder="Cari kode npsn Sekolah" class="css-input" style="width:250px;" />
<input type="submit" name="cari" value="Cari" class="btn" style="padding:3px;" margin="6px;" width="50px;" />
</form>
</div>
</body>
</html>
<?php
function bacaHTML($url){
// inisialisasi CURL
$data = curl_init();
// setting CURL
curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($data, CURLOPT_URL, $url);
// menjalankan CURL untuk membaca isi file
$hasil = curl_exec($data); curl_close($data); return $hasil;
}
$kode = @$_POST['kode'];
$cari = @$_POST['cari'];
if($cari) {
if($kode != "") {
$kodeHTML = bacaHTML('http://referensi.data.kemdikbud.go.id/tabs.php?npsn='.$kode); //sumber content
//Parse Awal Data
$pecah = explode('id="tabs-1">', $kodeHTML);
$pecah2 = explode('id="tabs-2">', $kodeHTML);
$pecah3 = explode('id="tabs-3">', $kodeHTML);
$pecah6 = explode('id="tabs-6">', $kodeHTML);
$pecahgambar = explode('class="galleryWrap cf">', $kodeHTML);
//Parse ujung data
$pecahLagi2 = explode('</div>', $pecahgambar[1]);
$pecahLagiisi1 = explode('</table>', $pecah[1]);
$pecahLagiisi2 = explode('</table>', $pecah2[1]);
$pecahLagiisi3 = explode('</table>', $pecah3[1]);
$pecahLagiisi4 = explode('</table>', $pecah6[1]);
//Menggabungkan data pecahan dan menampilkanya
echo $pecahLagi2[0], $pecahLagiisi1[0], $pecahLagiisi2[1], $pecahLagiisi3[0], $pecahLagiisi4[0];
}
}
?>
<html>
<head>
<title>Data Sekolahku</title>
</head>
<body>
<div style="margin-bottom:15px;" align="left">
<form action="" method="post">
<input type="number" name="kode" placeholder="Cari kode npsn Sekolah" class="css-input" style="width:250px;" />
<input type="submit" name="cari" value="Cari" class="btn" style="padding:3px;" margin="6px;" width="50px;" />
</form>
</div>
</body>
</html>
<?php
function bacaHTML($url){
// inisialisasi CURL
$data = curl_init();
// setting CURL
curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($data, CURLOPT_URL, $url);
// menjalankan CURL untuk membaca isi file
$hasil = curl_exec($data); curl_close($data); return $hasil;
}
$kode = @$_POST['kode'];
$cari = @$_POST['cari'];
if($cari) {
if($kode != "") {
$kodeHTML = bacaHTML('http://referensi.data.kemdikbud.go.id/tabs.php?npsn='.$kode); //sumber content
//Parse Awal Data
$pecah = explode('id="tabs-1">', $kodeHTML);
$pecah2 = explode('id="tabs-2">', $kodeHTML);
$pecah3 = explode('id="tabs-3">', $kodeHTML);
$pecah6 = explode('id="tabs-6">', $kodeHTML);
$pecahgambar = explode('class="galleryWrap cf">', $kodeHTML);
//Parse ujung data
$pecahLagi2 = explode('</div>', $pecahgambar[1]);
$pecahLagiisi1 = explode('</table>', $pecah[1]);
$pecahLagiisi2 = explode('</table>', $pecah2[1]);
$pecahLagiisi3 = explode('</table>', $pecah3[1]);
$pecahLagiisi4 = explode('</table>', $pecah6[1]);
//Menggabungkan data pecahan dan menampilkanya
echo $pecahLagi2[0], $pecahLagiisi1[0], $pecahLagiisi2[1], $pecahLagiisi3[0], $pecahLagiisi4[0];
}
}
?>

Anda juga dapan men download code melalui Link Dibawah ini


kenapa saya nggak nampil ya mas
BalasHapuspadahal udah sesuai prosedur
Notice: Undefined offset: 1 in D:\xampp\htdocs\grab\tiki.php on line 42
mau ambil grab data tiki.id/resi
bisa lihat kodenya mas?
Hapus