Categories: tutorial website

Cara Cek File Exist dengan PHP

Cara Cek File Exist dengan PHP – Sering kali Anda perlu memindahkan file atau menyimpan beberapa data di dalamnya dalam PHP. Dalam kedua kasus tersebut, mengetahui sebelumnya apakah suatu file ada atau tidak dapat membantu kita menghindari beberapa perilaku yang tidak diharapkan.

PHP hadir dengan berbagai fungsi untuk menangani berbagai jenis kueri yang terkait dengan file. Dalam tutorial ini, kami akan memberi Anda gambaran singkat tentang semua fungsi ini sehingga Anda dapat memilih salah satu yang paling sesuai dengan situasi Anda.

 

Pentingnya Memeriksa apakah File Ada

Ada banyak skenario di mana memeriksa apakah ada file sebelum melakukan hal lain bisa menjadi penting. Katakanlah situs web Anda memungkinkan pengguna untuk mengunggah file gambar di server Anda yang dapat mereka akses nanti. Adil untuk mengasumsikan bahwa mereka selalu merupakan peluang nama file yang bentrok jika banyak pengguna menggunakan layanan Anda untuk sering mengunggah banyak file.

Dalam kasus seperti itu, menjadi penting untuk memeriksa apakah sudah ada file lain di lokasi di mana Anda ingin menyimpan file pengguna yang baru saja diunggah. Anda kemudian akan memiliki opsi untuk mengambil beberapa langkah seperti mengganti nama file menjadi sesuatu yang lain atau memberi tahu pengguna bahwa unggahan mereka akan menimpa file yang ada.

Mari kita pertimbangkan situasi lain di mana Anda seharusnya menambahkan data ke file di PHP. Jika file yang Anda buat untuk menulis semua data Anda dihapus karena alasan tertentu, fungsi seperti file_put_contents() hanya akan membuat file baru dengan nama yang ditentukan dan menyimpan data Anda di dalam file yang baru dibuat. Ini mungkin diinginkan dalam beberapa situasi tetapi itu tidak akan selalu terjadi. Jadi, masuk akal untuk memeriksa apakah file tersebut ada sebelumnya jika Anda sudah mengharapkannya ada di sana sebelum Anda mulai menulis data Anda.

Memeriksa apakah File Ada di PHP

berikut adalah tiga fungsi berbeda yang dapat Anda gunakan untuk memeriksa apakah ada file di PHP.

Fungsi pertama adalah file_exists(). Fungsi ini menerima parameter tunggal yang merupakan jalur tempat file Anda berada. Ingatlah bahwa itu akan mengembalikan true untuk file dan direktori yang ada. Ini mungkin atau mungkin tidak cukup untuk kebutuhan Anda.

Anda dapat mempertimbangkan untuk menggunakan fungsi is_file() jika Anda ingin memastikan bahwa jalur yang Anda tentukan menunjuk ke file dan bukan direktori. Demikian pula, Anda dapat menggunakan fungsi is_dir() untuk memeriksa apakah jalur yang Anda tentukan ada dan apakah itu menunjuk ke direktori.

 

<?php
 
$name = "squares.txt";
$directory = "squares.zip";
 
if(file_exists($name)) {
    echo 'The file "'.$name.'" exists.';
}
 
if(is_file($name)) {
    echo '"'.$name.'" is indeed a file.';
}
 
if(is_dir($directory)) {
    echo '"'.$directory.'" turned out to be a directory.';
}
 
?>

Output :

Dalam contoh di atas, saya sengaja menamai salah satu direktori squares.zip untuk menunjukkan bahwa penting untuk melakukan pemeriksaan Anda sendiri daripada berasumsi jika nama file yang diberikan sebenarnya adalah nama file atau direktori.

Penting untuk diingat bahwa baik is_file() dan is_dir() akan mengembalikan false bahkan untuk jalur yang benar-benar ada ketika direktori induk tidak memiliki izin yang tepat.

Periksa apakah File Ada dan Dapat Dibaca atau Dapat Ditulis

Dua fungsi lagi bernama is_readable() dan is_writable() dapat digunakan untuk mendapatkan beberapa informasi tambahan tentang file selain memeriksanya.

Seperti namanya, fungsi is_readable() akan memeriksa dua hal. Pertama, bahwa file atau direktori benar-benar ada. Kedua, bahwa file tersebut dapat dibaca. Demikian pula, fungsi is_writable() juga memeriksa dua hal, bahwa file atau direktori ada dan dapat ditulis.

<?php
 
$name = "squares.txt";
 
if(is_readable($name)) {
    echo 'We can read "'.$name.'".';
}
 
if(is_writable($name)) {
    echo 'We can also modify the contents of "'.$name.'".';
}
 
?>
output

Saya menyarankan Anda untuk berhati-hati saat menafsirkan nilai kembalian dari kedua fungsi ini. Misalnya, insting pertama kami ketika is_readable() mengembalikan false untuk berpikir bahwa file yang kami tanyakan tidak dapat dibaca. Namun, fungsi juga mengembalikan false jika file tidak ada. Penting untuk selalu mengingat aspek fungsi ini.

Waspadalah terhadap Hasil yang Di-cache

Nilai kembalian yang Anda dapatkan kembali dari panggilan ke kelima fungsi ini, yaitu, file_exists(), is_file(), is_dir(), is_readable() dan is_writeable() di-cache. Ini berarti bahwa panggilan berulang ke suatu fungsi, katakanlah is_file() dapat menunjukkan hasil yang basi.

PHP menyimpan hasil dari fungsi ini untuk meningkatkan kinerja. Ini memastikan bahwa beberapa panggilan untuk menanyakan file yang sama bekerja lebih cepat. Namun, nilai pengembaliannya akan tetap sama meskipun file berubah selama eksekusi skrip.

Hasilnya hanya di-cache untuk file yang sudah ada. Ini berarti bahwa memanggil fungsi is_file() akan terus mengembalikan false untuk file yang tidak ada tetapi mulai mengembalikan true segera setelah file dibuat. Di sisi lain, fungsi akan tetap mengembalikan nilai true untuk file yang ada selama panggilan pertama bahkan setelah file dihapus.

<?php
 
$name = "squares.txt";
 
if(is_file($name)) {
    echo '"'.$name.'" is indeed a file.';
}
 
 
// Manually delete the file while scripts waits.
sleep(5);
 
if(is_file($name)) {
    echo '"'.$name.'" is indeed a file.';
}
 
clearstatcache();
 
if(is_file($name)) {
    echo '"'.$name.'" is indeed a file.';
} else {
    echo 'The file probably no longer exists.';
}
 
?>

Jika Anda menjalankan cuplikan kode di atas untuk file yang benar-benar ada dan kemudian menghapusnya secara manual saat skrip menunggu, memanggil is_file() akan tetap mengembalikan nilai true. Namun, Anda bisa mendapatkan hasil yang benar hanya dengan memanggil clearstatcache() sebelum menanyakan keberadaan file lagi.

output

Hal lain yang perlu diingat adalah bahwa panggilan ke unlink() secara otomatis menghapus cache sehingga Anda mendapatkan hasil baru untuk panggilan ke fungsi seperti is_file() nanti.

Kesimpulan

Kami memulai tutorial ini dengan mempelajari pentingnya memeriksa keberadaan file di PHP. Setelah itu, kita belajar tentang berbagai fungsi yang dapat Anda gunakan untuk memeriksa apakah ada file di PHP. Kami juga belajar tentang kelebihan dan kekurangan yang mungkin dimiliki beberapa fungsi ini.

Seperti yang saya sebutkan di akhir, PHP akan men-cache hasil dari beberapa panggilan fungsi ini untuk meningkatkan kinerja. Oleh karena itu, pastikan Anda mengosongkan cache sebelum melakukan sesuatu yang penting dengan file-file tersebut. sumber

Terimakasih Anda telah membaca artikel Cara Cek File Exist dengan PHP . semoga bermanfaat ya.. bagi yang membutuhkan jasa pembuatan web basis php native, laravel atau pun codeigniter bisa menghubungi WA 087823179122

Yudith Hentreisa

Web Developer. Sejak 2009. Ahli di bidang pemrograman basis website. Keahlian : HTML, PHP, Mysql, Codeigniter, Bootstrap, CSS, Jquery, Javascript

Recent Posts

Download Aplikasi SPPD Basis Web PHP

Download Aplikasi SPPD Basis Web PHP - Apakah instansi atau perusahaan Anda masih menggunakan Microsoft…

3 minggu ago

Cara Melindungi Data Pribadi Agar Tidak Masuk Database Mata Elang

Cara Melindungi Data Pribadi Agar Tidak Masuk Database Mata Elang - Kasus bocornya 1,7 juta…

5 bulan ago

Mengapa Aplikasi Penjual Data Pribadi Seperti Matel Bisa Lolos ke Play Store?

Belakangan ini aplikasi matel, jagat media sosial dihebohkan dengan penertiban aplikasi Mata Elang (Matel) oleh…

5 bulan ago

[DOWNLOAD] Source Code AI Code Reviewer: Bangun Tool Internal Perusahaan Berbasis Gemini API

Source Code AI Code Reviewer - Di era AI saat ini, keamanan kode perusahaan adalah…

5 bulan ago

10 Software Gratis Pengganti Aplikasi Berbayar di 2026 (Update Desember 2025)

10 Software Gratis Pengganti Aplikasi Berbayar di 2026 (Update Desember 2025) 10 Software Gratis Pengganti…

5 bulan ago

Download Pinokyo Browser

Download Pinokyo Browser: Solusi Mudah Install AI Tanpa Coding bagi Pemula Menjalankan teknologi AI seperti…

5 bulan ago