Cara menggunakan php parse html string

Generally parsing is converting one data type to another. It means how we can convert various data types to HTML. For example: Converting string to HTML.

Why do we need parsing?

To add the dynamic data (HTML content) at a certain point in PHP code, we need parsing. For example: For adding the data (info) in the form of HTML, we need to make that dynamic template in string and then convert it to HTML.

In many countries the numeric format is 1.000,33 in english it is 1,000.33

This function converts numeric arguments always into the PHP confirm numeric format. If only one seperator is into the numericstring so it is interpreted as the decimalpoint.

function dp($zahl)
{
  if ((strpos($zahl,".") > "-1") | (strpos($zahl,",") > "-1")) {
    if ((strpos($zahl,".") > "-1") & (strpos($zahl,",") > "-1")) {
      if (strpos($zahl,".") > strpos($zahl,",")){
          return str_replace(",","",$zahl);
    } else {
          return str_replace(",",".",str_replace(".","",$zahl));
      }
  } else {
      if (strpos($zahl,".") > "-1") {
        if (strpos($zahl,".") == strrpos($zahl,".")) {
            return $zahl;
      } else {
          return str_replace(".","",$zahl);
        }
    } else {
        if (strpos($zahl,",") == strrpos($zahl,",")) {
          return str_replace(",",".",$zahl);
      } else {
          return str_replace(",","",$zahl);
        }
    } }
} else {
    return $zahl;
} }

function like parse_str, but doesn't convert spaces and dots to underscores in $_GET AND $_POST

/**
* GET and POST input containing dots, etc.
*/
function getRealREQUEST() {
    $vars = array();

    $input    = $_SERVER['REDIRECT_QUERY_STRING'];
    if(!empty($input)){
        $pairs    = explode("&", $input);
        foreach ($pairs     as $pair) {
            $nv                = explode("=", $pair);

            $name            = urldecode($nv[0]);
            $nameSanitize    = preg_replace('/([^\[]*)\[.*$/','$1',$name);

            $nameMatched    = str_replace('.','_',$nameSanitize);
            $nameMatched    = str_replace(' ','_',$nameMatched);

            $vars[$nameSanitize]    = $_REQUEST[$nameMatched];
        }
    }

    $input    = file_get_contents("php://input");
    if(!empty($input)){
        $pairs    = explode("&", $input);
        foreach ($pairs as $pair) {
            $nv                = explode("=", $pair);

            $name            = urldecode($nv[0]);
            $nameSanitize    = preg_replace('/([^\[]*)\[.*$/','$1',$name);

            $nameMatched    = str_replace('.','_',$nameSanitize);
            $nameMatched    = str_replace(' ','_',$nameMatched);

            $vars[$nameSanitize]    = $_REQUEST[$nameMatched];
        }
    }

/**
* GET and POST input containing dots, etc.
*/
function getRealREQUEST() {
    $vars = array();
0

Pastekan kode script iklan adsense di area parser/converter tools di bawah ini, lalu klik Convert. Maka kode iklan adsense yang telah diparse/convert akan tampil. Kemudian silakan dicopy kode iklan yang telah diparse dan tempatkan di HTML template anda.

Disini kita akan belajar cara untuk mengambil konten dari situs lain, pada contoh kasus ini kita mengambil data kurs dari situs HSBC Indonesia. Script lengkapnya bisa anda download dibawah

1. Parsing HTML

Untuk mem-parsing HTML dari halaman web yang akan di download, kita akan menggunakan bantuan PHP Simple HTML DOM Parser. Bila anda ingin menggunakan parser DOM bawaan PHP bisa dilihat di PHP DOM MANUAL. Untuk memudahkan pemula disini kita menggunakan PHP Simple HTML DOM Parser.

2.Sekilas Info

Link Kurs HSBC ada di https://www.hsbc.co.id/1/2/id/personal/foreign-exchange/real-time-fx-rates. Untuk mengetahui bagian mana yang akan kita ambil, view source website tersebut. Singkat cerita HSBC menyimpan data kursnya di variabel javascript, jadi semakin mudah untuk diolah.

Cara menggunakan php parse html string
Cara menggunakan php parse html string

yang perlu di ingat dalam parsing data dari website adalah dari mana awalnya kita akan mengambil data, dan dimana akhir dari data yang akan kita ambil. Kalo menggunakan tabel (table) HTML biasanya kita akan mengambil data diantara

<table>
 
</table>

karena disini tidak menggunakan tabel, maka kita akan mengambil mulai dari var FXRATES = sampai ;

3.Script Lengkap

<?php
 
include_once 'simple_html_dom.php';
 
function ambilURL($url) {
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36");
	curl_setopt($curl, CURLOPT_URL, $url);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	$hasil = curl_exec($curl);
	$curl_error = curl_error($curl);
	$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
	curl_close($curl);
	return $hasil;
}
 
$urlBank = ambilURL('https://www.hsbc.co.id/1/2/id/personal/foreign-exchange/real-time-fx-rates');
$html = str_get_html($urlBank);
 
$pecahAwal = explode('var FXRATES =', $html);
$pecahAkhir = explode(';', $pecahAwal[1]);
 
preg_match_all("/\[([^\]]*)\]/", $pecahAkhir[0], $output_array);
 
$data = $output_array[1];
$kurs = array();
foreach ($data as $key => $value) {
	$pecah = explode(',', $value);
	$kurs[] = preg_replace("/[^A-Za-z0-9]/", '', $pecah);
}
var_dump($kurs);

hasil dari perintah diatas

array(11) {
  [0]=>
  array(3) {
    [0]=>
    string(3) "USD"
    [1]=>
    string(5) "13460"
    [2]=>
    string(5) "14060"
  }
  [1]=>
  array(3) {
    [0]=>
    string(3) "AUD"
    [1]=>
    string(5) "10324"
    [2]=>
    string(5) "10857"
  }
  [2]=>
  array(3) {
    [0]=>
    string(3) "GBP"
    [1]=>
    string(5) "18813"
    [2]=>
    string(5) "19745"
  }
  [3]=>
  array(3) {
    [0]=>
    string(3) "HKD"
    [1]=>
    string(4) "1715"
    [2]=>
    string(4) "1793"
  }
  [4]=>
  array(3) {
    [0]=>
    string(3) "EUR"
    [1]=>
    string(5) "16464"
    [2]=>
    string(5) "17267"
  }
  [5]=>
  array(3) {
    [0]=>
    string(3) "JPY"
    [1]=>
    string(3) "126"
    [2]=>
    string(3) "132"
  }
  [6]=>
  array(3) {
    [0]=>
    string(3) "SGD"
    [1]=>
    string(5) "10188"
    [2]=>
    string(5) "10677"
  }
  [7]=>
  array(3) {
    [0]=>
    string(3) "CHF"
    [1]=>
    string(5) "14056"
    [2]=>
    string(5) "14747"
  }
  [8]=>
  array(3) {
    [0]=>
    string(3) "CAD"
    [1]=>
    string(5) "10285"
    [2]=>
    string(5) "10801"
  }
  [9]=>
  array(3) {
    [0]=>
    string(3) "NZD"
    [1]=>
    string(4) "9636"
    [2]=>
    string(5) "10136"
  }
  [10]=>
  array(3) {
    [0]=>
    string(3) "RMB"
    [1]=>
    string(4) "2124"
    [2]=>
    string(4) "2222"
  }
}

karena data kurs sudah dalam bentuk array, tinggal pilih mau di simpan ke database atau di tampilkan kedalam tabel ataupun pilihan lainnya.

4. Menampilkan Data Kurs kedalam Tabel

hapus var_dump($kurs) pada script diatas, gantikan dengan

echo "<table border='1'>
    <thead>
        <tr>
            <th>KURS</th>
            <th>BELI</th>
            <th>JUAL</th>
        </tr>
    </thead>
    <tbody>";
 
foreach ($kurs as $key => $value) {
	echo "<tr>";
	echo "<td>$value[0]</td>";
	echo "<td>$value[1]</td>";
	echo "<td>$value[2]</td>";
	echo "<tr>";
}
echo "</tbody>
</table>";

cek hasilnya di browser

Cara menggunakan php parse html string
Cara menggunakan php parse html string

Download “kurs-bank-hsbc.tar.gz”

kurs-bank-hsbc.tar.gz – Downloaded 559 times – 14.88 KB

Tulisan menarik lainnya

  • Parsing Data Text dengan PHP

    Contoh kasus disini adalah saya punya data di file data.txt yang ingin saya parsing dan…

  • Mengambil Kurs dari Bank Mega dengan PHP

    Website Bank Mega berubah sedikit, jadi script yang sudah kita buat sebelumnya tidak berfungsi lagi.…