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