cara memasukan cUrl ke dalam tabel

gan saya mau tanya!!! cara memasukan data hasil dari cUrl ?

dan ini source codenya:

<?php

function belajar($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;
}

$mengambil =  belajar('http://www.seputarforex.com/data/konversi_matauang/');

$pecah = explode('<table width="100%"  cellspacing="0" cellpadding="4"
style="border:1px solid #CCCCCC;  margin:6px 0px 10px 0px; max-width:600px;  ">
', $mengambil);

$pecahLagi = explode('</table>
', $pecah[1]);

echo $pecahLagi[0];
?>
avatar Aditya1387
@Aditya1387

11 Kontribusi 3 Poin

Diperbarui 6 tahun yang lalu

2 Jawaban:

Kalo yang ane tangkep, agan mau grabbing site ya? Sebenernya udah bener cara explodenya, cuman untuk grab, ga harus pake cURL, pake file get contents juga bisa.

Terus, yang paling penting adalah, buat kita ngebaca elemen HTML, PHP punya kelas sendiri yaitu, kelas "DOMDocument" sama "DOMXPath". Dimana, DOMDocument untuk ngbaca markup HTML dan DOMXPath buat ngbaca elemennya.

Berikut contoh codingan yang udah ane coba untuk grabbing data:

<?php

$target = "http://www.seputarforex.com/data/konversi_matauang/";
$content = file_get_contents($target);
$content = preg_replace( "/\r|\n/", "", $content );

$table = explode('<table width="100%"  cellspacing="0" cellpadding="4', $content);
$table = $table[1];

$end = strpos($table, '</table>	<br>');
// var_dump($end);
$table = substr($table, 0, $end);
$table = str_replace("\" style=\"border:1px solid #CCCCCC;  margin:6px 0px 10px 0px; max-width:600px;  \">", "", $table);

$internalErrors = libxml_use_internal_errors(true);
$dom = new DOMDocument;
$dom->loadHTML($table);
$xPath = new DOMXPath($dom);
$nodes = $xPath->query('//table');
if($nodes->item(0)) {
    $nodes->item(0)->parentNode->removeChild($nodes->item(0));
}

$tr = $xPath->query('//tr');
$result = [];
foreach($tr as $index => $row) {
  if ($index > 0) {
    $data = [
      'from'      => $row->childNodes[0]->textContent,
      'from_currency'  => $row->childNodes[1] ? $row->childNodes[1]->textContent : 'N/A',
      'to'  => $row->childNodes[3] ? $row->childNodes[3]->textContent : 'N/A',
      'to_currency'  => $row->childNodes[4] ? $row->childNodes[4]->textContent : 'N/A',
      'rate'  => $row->childNodes[5] ? $row->childNodes[5]->textContent : 'N/A',
      'idr'  => $row->childNodes[6] ? $row->childNodes[6]->textContent : 'N/A'
    ];
    $result[] = $data;
  }
}
unset($result[10]);
$result = array_values($result);
libxml_use_internal_errors($internalErrors);

// Tinggal ambil resultnya aja.
var_dump($result);

Memang belum sempurna, tapi basicnya sih gitu. Kalo best practicenya, bisa di jadiin fungsi atau kelas biar bisa re-useable scriptnya.

CMIIW, semoga solved :D

NOTE: Script diatas hanya berjalan pada website/url yang agan kasih. Kalo untuk grabbing url lain, agan kudu baca markup HTML dan elemen mana yang mau di ambil.

avatar nurimansyah
@nurimansyah

98 Kontribusi 87 Poin

Dipost 6 tahun yang lalu

Daripada make source itu, mending pake source dari http://fixer.io/ gan, keluarnya json, jadi ringan dehh.

avatar agengdp
@agengdp

15 Kontribusi 3 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban