Mengambil Nama Fail daripada Direktori dalam PHP
Dalam PHP, mendapatkan nama fail dalam direktori boleh menjadi tugas yang mudah. Walau bagaimanapun, anda mungkin menghadapi masalah di mana kod yang anda berikan mengembalikan '1' dan bukannya nama fail.
Mari kita mendalami kod:
if (is_dir($log_directory)) { if ($handle = opendir($log_directory)) { while($file = readdir($handle) !== FALSE) { $results_array[] = $file; } closedir($handle); } }
Dalam kod ini, anda sedang cuba membaca fail dari direktori menggunakan opendir() dan readdir(). Walaupun pendekatan ini berfungsi dalam banyak kes, pendekatan ini mungkin tidak selalu memaparkan nama fail dengan betul.
Penyelesaian: Menggunakan glob() untuk Pengambilan Fail
Daripada menggunakan opendir( ) dan readdir(), pertimbangkan untuk memanfaatkan fungsi glob(). Ia menyediakan cara yang lebih cekap untuk mendapatkan semula senarai fail dalam direktori:
foreach(glob($log_directory.'/*.*') as $file) { ... }
Dalam kod ini, glob() akan mencari $log_directory untuk semua fail dengan sebarang sambungan fail (*.*). Ia mengembalikan tatasusunan yang mengandungi laluan penuh ke fail yang ditemui.
Dengan melelaran tatasusunan yang diperoleh daripada glob(), anda boleh mengakses setiap laluan penuh fail, termasuk namanya. Kaedah ini menghapuskan isu mendapatkan '1' sebagai nama fail, memberikan anda nama fail sebenar dalam direktori.
Atas ialah kandungan terperinci Mengapa Penyenaraian Direktori PHP Saya Mengembalikan '1' Daripada Nama Fail?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!