Home > Pemrograman Web > PHP: Baca File per Baris

PHP: Baca File per Baris


Langkah pertama dalam membaca file di PHP adalah membuka file menggunakan perintah fopen yang parameternya adalah nama file yang akan dibuka dan atribut (tanda) yang menunjukkan akan diapakan file yang terbuka nanti, ditulis, dibaca atau ditambahkan data baru. Membaca file seperti sebelumnya hanya berdasarkan byte, bagaimana agar dapat membaca per baris?


Fungsi fgets()

Fungsi fgets() digunakan untuk membaca sebaris data dari file. Menggunakan fungsi ini kita juga dapat membaca sejumlah karakter dalam file. Bentuk dari fungsi ini adalah

fgets ($handle, $length);

Parameter pertama adalah file handle atau pointer ($handle) dan kedua adalah (opsional) jumlah byte ($length) yang akan dibaca dalam sekali panggil. Jika parameter kedua dikosongkan, fungsi akan membaca sampai akhir baris.

Catatan:

Jika panjang baris lebih dari 1024 karakter, sebaiknya membaca maksimum 1024 karakter terlebih dahulu agar lebih hemat memory.

Berikut ini adalah beberapa contoh.

Membaca baris teks

Kode berikut membaca satu baris lengkap dari suatu file dan menyimpannya dalam format string. Script pertama menempatkan pointer pada awal file, dan kemudian membaca baris pertama:

<?php
$fh = fopen("myfile.txt", "r");

$line = fgets($fh);
echo $line;

fclose($fh);
?>

Terlihat jelas perintah fgets tidak menerima parameter kedua, tidak ditentukan berapa panjang baris akan dibaca alias dibaca lengkap.

Ingat, modus ‘r’ berarti bahwa file yang dibuka hanya untuk dibaca.

Membaca Sejumlah Byte

Mirip seperti tulisan sebelumnya yang menggunakan perintah fread untuk membaca file, kali ini mendapatkan sekian byte string dari file menggunakan perintah fgets.

<?php
$fh = fopen("myfile.txt", "r");

$str = fgets($fh, 16);
echo $str;

$line2 = fgets($fh, 16);
echo $str;

fclose($fh);
?>

Kode di atas membaca 16 karakter pertama dan kemudian membaca 16 karakter berikutnya, kemungkinan masih pada baris yang sama, jika panjang teks lebih atau sama dengan 32 karakter.

Membaca Baris demi Baris

Fungsi fgets dapat pula digunakan untuk membaca baris demi baris string dalam file secara lengkap, cukup dikombinasikan dengan pernyataan while untuk mendeteksi apakah pointer telah sampai di akhir file.

Contoh 1:

<?php
$fh = fopen("myfile.txt", "r");

while(true)
{
	$line = fgets($fh);
	if($line == null)break;

	echo $line;
}

fclose($fh);
?>

Contoh 2, apa bedanya?:

<?php
$fh = fopen("myfile.txt", "r");

while (!feof($fh)) {
	$line = fgets($fh);
	echo $line;
}

fclose($fh);
?>

Membaca isi file sekaligus

Kita juga dapat membaca suatu file dalam sekali. Perintah yang dapat digunakan, selain fread yang dikombinasikan dengan filesize, juga file_get_contents().

Contohnya adalah sebagai berikut:

<?php
$fh = fopen("myfile.txt", "r");

$file = file_get_contents("myfile.txt");
echo $file;
?>

Kode di atas akan membaca seluruh isi file myfile.txt dan menyimpannya ke dalam varibel string $file. Hati-hati, jika anda membaca file yang berukuran sangat besar…sangat dianjurkan untuk tidak membacanya sekaligus. Pengunjung web anda tentu akan kelamaan menanti jika script membaca file berukuran di atas 1 MB, dan mungkinkah pula web browsernya hang?🙂

Categories: Pemrograman Web Tags: , , ,
  1. 16 March 2009 at 10:58 pm

    dlm script “$fh = fopen (“myfile.txt”,”r”);” dijelaskan nama file yang dibuka adalah my file.txt yang dimana file tersebut adalah 1 directory dengan file dimana kita menyimpan file yang kita buat ini.kemudian yang ingin saya tanyakan, bagaimana jika ingin membuka file, tapi online. contohnya saja seperti membuka “http:localhost/domain/file.txt”? terima kasih sebelumnya.

  2. hyumawan
    31 May 2010 at 3:48 am

    assalamualaikum wr,wb

    artikelnya bagus,mohon bantuannya ada yang saya ingin tanyakan bagaimana caranya mengambil file dari url?
    bisakah tftp digunakan oleh php?adakah scriptnya?

    terimakasih
    wassalam

  3. 26 July 2010 at 4:34 am

    ini yang saya cari….
    terimakasih tutorialnya

  4. 19 October 2010 at 12:17 pm

    thanx bro buat tutorialnya… rekomen banget deh buat belajar…😀

  5. 28 January 2011 at 1:51 am

    sip, thanks bro….

  6. uut
    12 February 2011 at 8:56 am

    yang saya mau tanyakan hampir sama dengan mas ferdian,
    gimana cara baca file jika antar host gitu…
    terima kasih kl ada solusinya mohon bantuannya😀

  7. melengo
    11 September 2011 at 6:30 am

    gan klok fungsi untuk membaca karakter string yang sama kemudian di hapus karakter yang sama terus di update gi mana gan.
    ex :
    saya pergi ke pasar // baris pertaman
    kamu sama saya harus ke pantai //baris ke dua

    nah kat kata (saya) yang ada di ke dua baris tersebut mau di ganti dengan (kami). tapi tidak mengganggu string yang lain gi mana gan:

    mohon bantuannyah.

  8. 11 January 2012 at 6:48 pm

    Salam kenal sob, trims infonya sangat bermanfaat banget nih.

  9. 10 February 2012 at 8:19 am

    tutorial yang keren,…
    nih ada script untuk menyimpan isi directori file ke dalam file .txt

    <?php
    //Open images directory
    $dir = opendir("./");

    //List files in images directory
    while (($file = readdir($dir)) !== false)
    {
    echo"Tambah data”;
    $buka=fopen(“./liat.txt”, “a+”);
    $tambahan=””.$file.”\n”;
    fputs($buka, $tambahan);
    if(fputs){
    echo”data tambahan sukses dimasukkan.”;
    }
    }
    closedir($dir);
    ?>

    semoga membantu

    ^_^

  10. radityo bagus nimpuno
    2 July 2012 at 4:36 pm

    kalau file txtnya berisi karakter ascii gimana bang?
    YM!: radityobagusnimpuno@yahoo.com

  11. arga
    28 August 2012 at 9:39 am

    kalo script untuk membaca file dari folder & drive tertentu, gimana bro ???

    Misal, ane mau ngebaca file dgn nama 009101-01082012-0001.txt.
    file tsb disimpan di drive E:/101/01082012/.
    sedangkan folder dalam drive E:/, itu ada banyak folder, folder 101,102,103,dst…
    selain itu, dalam setiap folder tadi, juga terdapat folder lain, contoh, 01082012, 02082012, 03082012, dst…

    nah, ane bingung script phpnya untuk ngebaca file dari drive diluar drive installan xampp ini.
    For info, ane install xampp nya di C:/xampp/htdocs/search/…

    Mohon petunjuk

  12. 4 October 2012 at 10:29 am

    Nice tutorial … Jelas Banget Penjelasannya ..

  13. Openbooknesia
    2 May 2013 at 5:19 am

    bagaimana caranya jika ingin mengedit data pada file tersebut di baris tertentu.

    Misal, saya punya file latihan.txt.

    Isinya:
    ====================
    aku sedang belajar
    aku bermain gitar
    ====================

    kemudian sy hanya akan mengedit kata ‘gitar’ menjadi ‘biola’. bagaimana script nya?…
    mohon pencerahannya thanks..:)

  14. 2 November 2014 at 4:17 pm

    yg baca perbaris masih bingung ane gan :v

  15. 15 May 2015 at 12:36 pm

    makasih mas bro pencerahannya. gimana caranya tuh biar cepet kalo filenya di atas 1mb?

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: