Udah baca dokumentasi PHP tetapi masih bingung cara menggunakan preg_match_all? Coba ikuti tutorial dibawah ini, sekalian ikuti contohnya.

Contoh kita akan mengambil data dari file html tabel.html

<table cellpadding="1" cellspacing="1">
<tr>
    <th>name</th>
    <th>email</th>
    <th>address</th>
    <th>country</th>
</tr>
<tr>
    <td>Vivien Buckner</td>
    <td>magna.Duis.dignissim@tellussemmollis.edu</td>
    <td>7575 Pharetra Rd.</td>
    <td>Eritrea</td>
</tr>
<tr>
    <td>Derek Sharpe</td>
    <td>condimentum@euturpis.com</td>
    <td>7545 Lobortis. Road</td>
    <td>Bangladesh</td>
</tr>
<tr>
    <td>Bradley Dalton</td>
    <td>amet@posuere.com</td>
    <td>Ap #544-8283 Malesuada Av.</td>
    <td>Palestine, State of</td>
</tr>
<tr>
    <td>Gray Weber</td>
    <td>Donec@AeneanmassaInteger.org</td>
    <td>P.O. Box 555, 6707 Libero St.</td>
    <td>Ukraine</td>
</tr>
<tr>
    <td>Amery Petty</td>
    <td>Mauris.nulla@quispede.net</td>
    <td>P.O. Box 710, 9013 Et Avenue</td>
    <td>Lebanon</td>
</tr>
<tr>
    <td>Rahim Macias</td>
    <td>Nulla@ultriciesornareelit.ca</td>
    <td>849-820 Vivamus Street</td>
    <td>El Salvador</td>
</tr>
<tr>
    <td>Branden Farrell</td>
    <td>non@euismod.com</td>
    <td>P.O. Box 655, 3941 Pharetra. Road</td>
    <td>Comoros</td>
</tr>
<tr>
    <td>Ignatius Gonzales</td>
    <td>massa.Suspendisse@cubiliaCuraePhasellus.co.uk</td>
    <td>P.O. Box 782, 3264 Sed Ave</td>
    <td>Grenada</td>
</tr>
<tr>
    <td>Guy Singleton</td>
    <td>volutpat@arcuVivamus.org</td>
    <td>P.O. Box 130, 4058 Consequat Av.</td>
    <td>Nigeria</td>
</tr>
<tr>
    <td>Kaden Morgan</td>
    <td>Nulla@arcuVestibulum.com</td>
    <td>6753 Cras Av.</td>
    <td>Libya</td>
</tr>
<tr>
    <td>Brynne Mclean</td>
    <td>diam.Sed@molestiesodales.ca</td>
    <td>7243 Nunc Road</td>
    <td>Saint Martin</td>
</tr>
<tr>
    <td>Hedy Maxwell</td>
    <td>montes@Vivamusnonlorem.co.uk</td>
    <td>6038 Neque. Street</td>
    <td>Monaco</td>
</tr>
<tr>
    <td>Sonia Herman</td>
    <td>tincidunt@lorem.org</td>
    <td>4636 Mauris St.</td>
    <td>Martinique</td>
</tr>
<tr>
    <td>Jorden Luna</td>
    <td>facilisis.facilisis@disparturient.co.uk</td>
    <td>Ap #597-2554 Consequat, Rd.</td>
    <td>Pakistan</td>
</tr>
<tr>
    <td>Hyatt Williams</td>
    <td>molestie.dapibus.ligula@dictum.ca</td>
    <td>Ap #970-1226 Aliquet Av.</td>
    <td>Slovenia</td>
</tr>
<tr>
    <td>Fulton Walters</td>
    <td>facilisis@egetlaoreetposuere.co.uk</td>
    <td>8031 Semper Road</td>
    <td>Venezuela</td>
</tr>
</table>

Untuk mengambil semua data diantara tag < tr> dan < /tr>, gunakan script dibawah ini parsing-tabel.php

<?php
// parsing-tabel.php
$fileHTML = file_get_contents('/tmp/tabel.html');
 
// ambil semua data diantara <tr> dan </tr>
preg_match_all("'<tr>(.*?)</tr>'si",$fileHTML, $ketemu);
 
// cek array data
// var_dump($ketemu);
 
// $ketemu[0] atau array pertama masih memiliki tag <tr> </tr>
// makanya kita memilih $ketemu[1] dari hasil var_dump($ketemu) diatas.
foreach ($ketemu[1] as $data) {
    echo $data;
}

kegunaan tiap baris dari script diatas bisa dilihat di script diatas.
Output script diatas :

    <th>name</th>
    <th>email</th>
    <th>address</th>
    <th>country</th>
 
    <td>Vivien Buckner</td>
    <td>magna.Duis.dignissim@tellussemmollis.edu</td>
    <td>7575 Pharetra Rd.</td>
    <td>Eritrea</td>
 
    <td>Derek Sharpe</td>
    <td>condimentum@euturpis.com</td>
    <td>7545 Lobortis. Road</td>
    <td>Bangladesh</td>
 
    <td>Bradley Dalton</td>
    <td>amet@posuere.com</td>
    <td>Ap #544-8283 Malesuada Av.</td>
    <td>Palestine, State of</td>
...
...

Join the Conversation

1 Comment

Your email address will not be published. Required fields are marked *

  1. preg_match_all(“‘(.*?)’si”,$fileHTML, $ketemu);

    Tujuan untuk ‘si” itu apa kak ?