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 | #1

    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 | #2

    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 | #3

    ini yang saya cari….
    terimakasih tutorialnya

  4. 19 October 2010 at 12:17 pm | #4

    thanx bro buat tutorialnya… rekomen banget deh buat belajar… :D

  5. 28 January 2011 at 1:51 am | #5

    sip, thanks bro….

  6. uut
    12 February 2011 at 8:56 am | #6

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

  7. 11 September 2011 at 6:30 am | #7

    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 | #8

    Salam kenal sob, trims infonya sangat bermanfaat banget nih.

  9. 10 February 2012 at 8:19 am | #9

    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

    ^_^

  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 )

Connecting to %s

Follow

Get every new post delivered to your Inbox.