Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Penyenaraian Direktori PHP Saya Mengembalikan '1' Daripada Nama Fail?

Mengapa Penyenaraian Direktori PHP Saya Mengembalikan '1' Daripada Nama Fail?

Susan Sarandon
Susan Sarandonasal
2024-12-05 06:39:15657semak imbas

Why Does My PHP Directory Listing Return

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn