Fungsi file_exists() PHP digunakan untuk menyemak sama ada fail atau direktori wujud. Mengembalikan TRUE jika ada, FALSE sebaliknya. Anda perlu memberi perhatian kepada isu berikut apabila menggunakannya:
- Isu laluan
Fungsi file_exists() sangat sensitif terhadap pemprosesan laluan fail, aksara khas, arah slash,. dan lain-lain dalam laluan akan menjejaskan keputusan penghakiman. Laluan yang betul mestilah laluan mutlak, seperti: /var/www/html/test.php.
- Isu kebenaran fail
Dalam Linux, kebenaran fail diwakili oleh tiga nombor Nombor pertama mewakili kebenaran pemilik, nombor kedua mewakili kebenaran kumpulan dan nombor ketiga mewakili kebenaran orang lain. Antaranya, 0 bermaksud tiada kebenaran, 1 bermaksud kebenaran pelaksanaan, 2 bermaksud kebenaran menulis, dan 4 bermaksud kebenaran membaca. Kebenaran fail/folder tidak memenuhi keperluan, program tidak boleh membacanya, dan fungsi file_exists() juga akan gagal.
- Isu sistem lain
Dalam sistem Windows, fungsi file_exists() tidak tertakluk kepada sekatan kebenaran, tetapi sensitif kepada kes nama fail. Dalam sistem Unix/Linux, nama fail tidak sensitif huruf besar-besaran, tetapi fungsi file_exists() adalah sensitif huruf besar-kecil secara lalai. Anda boleh menggunakan fungsi strcasecmp() atau strnatcasecmp() dan bukannya fungsi strcmp() lalai untuk perbandingan rentetan untuk mengelakkan masalah ini.
Berikut ialah contoh kod:
<?php
$file = '/var/www/html/test.txt';// 文件路径
if (file_exists($file)) {
echo "文件存在";
} else {
echo "文件不存在";
}
?>
Salin selepas log masuk
Jika kod di atas tidak dapat menentukan dengan betul sama ada fail itu wujud, maka anda perlu menyemak dengan teliti laluan fail, kebenaran fail, dan isu persekitaran sistem. Pada masa yang sama, fungsi alternatif lain juga boleh digunakan untuk melengkapkan fungsi yang sama, seperti is_file(), stat(), dsb.
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika php file_exists tidak mempunyai kesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!