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
Lepaskan: 2024-12-05 10:18:16
asal
770 orang telah melayarinya

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);
    }
}
Salin selepas log masuk

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) {
    ...
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan