Php buat file jika tidak ada

Sering kali Anda perlu memindahkan file atau menyimpan beberapa data di dalamnya dalam PHP. Dalam kedua kasus tersebut, mengetahui sebelumnya apakah 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, saya akan memberi Anda ikhtisar 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 jadi penting. Katakanlah situs web Anda mengizinkan pengguna untuk mengunggah file gambar di server Anda yang dapat mereka akses nanti. Wajar untuk berasumsi bahwa selalu ada kemungkinan nama file yang bentrok jika banyak pengguna menggunakan layanan Anda untuk sering mengunggah banyak file

Dalam kasus seperti itu, penting untuk memeriksa apakah sudah ada file lain di lokasi tempat Anda ingin menyimpan file pengguna yang baru 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 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 suatu alasan, fungsi seperti

<?php
11 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 selalu terjadi. Jadi masuk akal untuk memeriksa apakah file tersebut ada sebelumnya jika Anda sudah mengharapkannya ada sebelum Anda mulai menulis data Anda

Memeriksa apakah File Ada di PHP

Ada tiga fungsi berbeda yang dapat Anda gunakan untuk memeriksa apakah ada file di PHP

Fungsi pertama adalah

<?php
_12. Fungsi ini menerima satu parameter yaitu jalur tempat file Anda berada. Perlu diingat bahwa ini akan mengembalikan true untuk file dan direktori yang ada. Ini mungkin atau mungkin tidak cukup untuk kebutuhan Anda

Anda dapat mempertimbangkan untuk menggunakan fungsi

<?php
_13 jika Anda ingin memastikan bahwa jalur yang Anda tentukan mengarah ke file dan bukan direktori. Demikian pula, Anda dapat menggunakan fungsi
<?php
_14 untuk memeriksa apakah jalur yang Anda tentukan ada dan apakah itu mengarah ke direktori

1
<?php
2
3
$name = "squares.txt";
4
$directory = "squares.zip";
5
6
if(file_exists($name)) {
<?php
0
<?php
1
<?php
2
<?php
3
<?php
4
<?php
5
<?php
6
<?php
7
<?php
8
<?php
9
<?php
3
2
1
2
2
2
3
2
4
2
5
2
6
<?php
3
2
8
2
9
3
0

keluaran

1
3
2
2
3
4
3
3
6

Dalam contoh di atas, saya sengaja menamai salah satu kotak direktori. zip untuk menunjukkan bahwa penting untuk melakukan pemeriksaan sendiri alih-alih berasumsi bahwa nama file yang disediakan sebenarnya adalah nama file atau direktori

Penting untuk diingat bahwa

<?php
13 dan
<?php
14 akan mengembalikan
<?php
17 bahkan untuk jalur yang benar-benar ada saat direktori induk tidak memiliki izin yang tepat

Periksa apakah File Ada dan Dapat Dibaca atau Dapat Ditulis

Dua fungsi lagi bernama

<?php
18 dan
<?php
19 dapat digunakan untuk mendapatkan beberapa informasi tambahan tentang file, selain memeriksa apakah itu ada

Seperti namanya, fungsi

<?php
18 akan memeriksa dua hal. pertama, bahwa file atau direktori tersebut benar-benar ada, dan kedua, bahwa file tersebut dapat dibaca. Demikian pula, fungsi
<?php
_19 juga memeriksa dua hal, bahwa file atau direktori ada dan dapat ditulisi

1
<?php
2
3
$name = "squares.txt";
4
5
$name = "squares.txt";
4____1212________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ges

keluaran

1
$directory = "squares.zip";
0
2
$directory = "squares.zip";
2

Saya akan menyarankan Anda untuk berhati-hati saat menginterpretasikan nilai kembalian dari kedua fungsi ini. Misalnya, insting pertama kita ketika

<?php
_18 mengembalikan false adalah berpikir bahwa file yang kita minta tidak dapat dibaca. Namun, fungsi juga mengembalikan false jika file tidak ada. Penting untuk selalu mengingat aspek fungsi ini

Waspadai Hasil Tembolok

Nilai pengembalian yang Anda dapatkan dari panggilan ke kelima fungsi ini—yaitu,

<?php
12,
<?php
13,
<?php
14,
<?php
18, dan
<?php
27—di-cache. Ini berarti panggilan berulang ke suatu fungsi, katakanlah
<?php
13, dapat menunjukkan hasil yang basi

PHP menyimpan hasil dari fungsi-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 memanggil fungsi

<?php
_13 akan terus mengembalikan
<?php
17 untuk file yang tidak ada tetapi akan mulai mengembalikan
<?php
31 segera setelah file dibuat. Di sisi lain, fungsi akan terus mengembalikan
<?php
31 untuk file yang ada selama panggilan pertama, bahkan setelah file dihapus

1
<?php
2
3
$name = "squares.txt";
4
5
<?php
6
6
<?php
8
<?php
0
<?php
3
<?php
2
<?php
4
<?php
5
5
8
<?php
7
6
0
<?php
9
2
1
<?php
6
2
2
<?php
8
2
4
<?php
3
2
6
2
8
if(file_exists($name)) {
0
2
9
if(file_exists($name)) {
2
<?php
6
if(file_exists($name)) {
4
<?php
8
if(file_exists($name)) {
6
if(file_exists($name)) {
7
if(file_exists($name)) {
8
if(file_exists($name)) {
9
<?php
00
<?php
3
<?php
02
<?php
03
3
0

Jika Anda menjalankan cuplikan kode di atas untuk file yang benar-benar ada dan kemudian menghapusnya secara manual saat skrip menunggu, memanggil

<?php
13 akan tetap mengembalikan
<?php
31. Namun, Anda bisa mendapatkan hasil yang benar hanya dengan menelepon
<?php
35 sebelum menanyakan keberadaan file lagi

keluaran

1
3
4
2
3
4
3
<?php
10

Hal lain yang perlu diingat adalah bahwa panggilan ke

<?php
36 secara otomatis menghapus cache, sehingga Anda mendapatkan hasil baru untuk panggilan ke fungsi seperti
<?php
13 nanti

Pikiran Akhir

Kami memulai tutorial ini dengan mempelajari pentingnya memeriksa keberadaan file di PHP. Setelah itu, kami 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 menjelang akhir, PHP akan meng-cache hasil dari beberapa pemanggilan fungsi ini untuk meningkatkan kinerja. Oleh karena itu, pastikan Anda menghapus cache sebelum melakukan sesuatu yang penting dengan file tersebut

Bagaimana cara membuat file jika tidak ada di PHP?

PHP Buat File - fopen() .

Bagaimana cara memeriksa apakah ada file dan buat di PHP?

Gunakan fungsi file_exists() untuk memeriksa apakah ada file . Gunakan fungsi is_file() untuk memeriksa apakah path adalah file biasa, bukan direktori, dan file tersebut ada. Gunakan fungsi is_readable() untuk memeriksa apakah file ada dan dapat dibaca. Gunakan fungsi is_writable() untuk memeriksa apakah file ada dan dapat ditulis.

Bagaimana cara memeriksa apakah suatu file tidak ada di PHP?

Fungsi file_exists() memeriksa apakah ada file atau direktori . Catatan. Hasil dari fungsi ini di-cache. Gunakan clearstatcache() untuk menghapus cache.

Bagaimana cara membuat file PHP baru?

Untuk membuat file PHP baru dalam sebuah proyek. .
Dalam tampilan PHP Explorer, pilih Proyek di mana Anda ingin menempatkan file
Klik kanan dan pilih Baru. File PHP -atau- buka File di Bilah Menu dan pilih Baru. Berkas PHP
Dialog pembuatan File PHP akan ditampilkan
Masukkan nama file dan klik Berikutnya