Maison >développement back-end >tutoriel php >Pourquoi ma liste de répertoire PHP renvoie-t-elle « 1 » au lieu des noms de fichiers ?

Pourquoi ma liste de répertoire PHP renvoie-t-elle « 1 » au lieu des noms de fichiers ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-05 06:39:15630parcourir

Why Does My PHP Directory Listing Return

Récupérer les noms de fichiers d'un répertoire en PHP

En PHP, obtenir les noms de fichiers dans un répertoire peut être une tâche simple. Cependant, vous pouvez rencontrer un problème où le code que vous avez présenté renvoie « 1 » au lieu des noms de fichiers.

Plongeons dans le code :

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

Dans ce code, vous 'essayez de lire des fichiers à partir d'un répertoire en utilisant opendir() et readdir(). Bien que cette approche fonctionne dans de nombreux cas, elle peut ne pas toujours afficher correctement les noms de fichiers.

Solution : utiliser glob() pour la récupération de fichiers

Au lieu d'utiliser opendir( ) et readdir(), envisagez d'utiliser la fonction glob(). Il fournit un moyen plus efficace de récupérer une liste de fichiers dans un répertoire :

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

Dans ce code, glob() recherchera dans le $log_directory tous les fichiers avec n'importe quelle extension de fichier (*.*). Il renvoie un tableau contenant les chemins complets des fichiers trouvés.

En parcourant le tableau obtenu à partir de glob(), vous pouvez accéder au chemin complet de chaque fichier, y compris son nom. Cette méthode élimine le problème d'obtenir « 1 » comme nom de fichier, vous fournissant les noms de fichiers réels dans le répertoire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn