Maison > développement back-end > tutoriel php > Pourquoi mon code PHP renvoie-t-il « 1 » au lieu des noms de fichiers lors de l'utilisation de « readdir() » ?

Pourquoi mon code PHP renvoie-t-il « 1 » au lieu des noms de fichiers lors de l'utilisation de « readdir() » ?

Mary-Kate Olsen
Libérer: 2024-12-05 10:18:16
original
781 Les gens l'ont consulté

Why Does My PHP Code Return

Obtenir des noms de fichiers dans un répertoire avec PHP : résoudre l'énigme du « 1 »

En PHP, obtenir les noms de fichiers dans un répertoire est une tâche courante. Cependant, certains peuvent rencontrer un problème inattendu où les noms de fichiers sont renvoyés sous la forme « 1 » au lieu de leurs noms réels. Cette énigme peut survenir lors de l'utilisation de la fonction readdir() avec is_dir() et opendir().

Le code :

if (is_dir($log_directory)) {
    if ($handle = opendir($log_directory)) {
        while ($file = readdir($handle) !== FALSE) {
            $results_array[] = $file;
        }
        closedir($handle);
    }
}
Copier après la connexion

Le problème :

Lors de l'itération sur les éléments du $results_array, les noms de fichiers attendus ne sont pas renvoyés. Au lieu de cela, ils sont remplacés par « 1 ». Ce comportement est dû à un détail subtil relatif au fonctionnement de readdir().

La solution :

Pour remédier à ce problème, il est conseillé de contourner opendir() et readdir() et utilisez plutôt glob(). glob() est une fonction complète qui fournit une solution puissante pour extraire les noms de fichiers dans un répertoire.

Le code corrigé :

foreach(glob($log_directory.'/*.*') as $file) {
    ...
}
Copier après la connexion

Dans ce code révisé, glob() est utilisé pour parcourir les fichiers dans le $log_directory, en renvoyant leurs chemins. Par la suite, chaque chemin de fichier est attribué à la variable $file, permettant un traitement ou une utilisation ultérieurs.

Cette approche contourne les limitations de readdir() et fournit les résultats souhaités : une liste de noms de fichiers réels, et non '1 '.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal