Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Kod PHP Saya Mengembalikan '1' Daripada Nama Fail Apabila Menggunakan `readdir()`?

Mengapa Kod PHP Saya Mengembalikan '1' Daripada Nama Fail Apabila Menggunakan `readdir()`?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-05 10:18:16779semak imbas

Why Does My PHP Code Return

Mendapatkan Nama Fail dalam Direktori dengan PHP: Menyelesaikan Teka-teki '1'

Dalam PHP, mendapatkan nama fail dalam direktori adalah tugas yang biasa dihadapi. Walau bagaimanapun, sesetengah mungkin menghadapi isu yang tidak dijangka di mana nama fail dikembalikan sebagai '1' dan bukannya nama sebenar mereka. Teka-teki ini boleh timbul semasa menggunakan fungsi readdir() dengan is_dir() dan opendir().

Kod:

if (is_dir($log_directory)) {
    if ($handle = opendir($log_directory)) {
        while ($file = readdir($handle) !== FALSE) {
            $results_array[] = $file;
        }
        closedir($handle);
    }
}

Masalahnya:

Apabila melelaran melalui elemen $results_array, nama fail yang diharapkan tidak dikembalikan. Sebaliknya, ia digantikan dengan '1'. Tingkah laku ini disebabkan oleh butiran halus berkaitan cara readdir() berfungsi.

Penyelesaian:

Untuk membetulkan isu ini, dinasihatkan untuk memintas opendir() dan readdir() dan gunakan glob() sebaliknya. glob() ialah fungsi komprehensif yang menyediakan penyelesaian yang berkuasa untuk mengekstrak nama fail dalam direktori.

Kod Dibetulkan:

foreach(glob($log_directory.'/*.*') as $file) {
    ...
}

Dalam kod yang disemak ini, glob() digunakan untuk melintasi fail dalam $log_directory, mengembalikan laluannya. Selepas itu, setiap laluan fail diperuntukkan kepada pembolehubah $file, membolehkan pemprosesan atau penggunaan selanjutnya.

Pendekatan ini memintas pengehadan readdir() dan menyampaikan hasil yang dikehendaki – senarai nama fail sebenar, bukan '1 '.

Atas ialah kandungan terperinci Mengapa Kod PHP Saya Mengembalikan '1' Daripada Nama Fail Apabila Menggunakan `readdir()`?. 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