Maison >développement back-end >tutoriel php >Compter le nombre de fichiers dans un répertoire en PHP
l'éditeur php Yuzai vous apprend à compter le nombre de fichiers dans un répertoire en PHP. En utilisant les fonctions du système de fichiers de PHP, vous pouvez facilement parcourir un répertoire et compter le nombre de fichiers qu'il contient. Cela peut s'avérer une fonctionnalité très utile dans certains projets, comme compter le nombre d'images ou de documents sur un site Web. Nous détaillerons ensuite comment utiliser le code PHP pour réaliser cette fonctionnalité. Apprenons ensemble !
PHP fournit la classe FilesystemIterator
, une manière élégante de compter les fichiers dans un répertoire. Cette classe contient un certain nombre de fonctions et de constantes qui effectuent diverses opérations pour itérer le système de fichiers.
Utilisez la fonction iterator_count()
pour compter le nombre d'éléments dans un itérateur.
Considérons la structure de répertoires suivante.
<code> <code class="language-bash hljs">myDir ├── abc.<strong class="keylink">html</strong> ├── abc.jpeg ├── abc.php └── abc.png </code></code>
Tout d'abord, créez une variable $iterator et stockez FilesystemIterator()
的一个实例。 将第一个参数设置为 __DIR__
并使用 FilesystemIterator::SKIP_DOTS
comme deuxième paramètre dans le constructeur.
__DIR__
表示脚本所在的当前目录,第二个参数是一个标志,表示跳过。 和 ..
existe dans l'annuaire. La variable $iterator contient l'itérateur du système de fichiers du répertoire courant.
Il peut être itéré pour obtenir des informations telles que le nom du fichier, le nombre de fichiers, etc.
Ensuite, utilisez la fonction iterator_count()
pour imprimer le nombre de $iterator dans le répertoire.
Exemple de code :
<code> <code class="language-php hljs"><span class="hljs-variable">$iterator</span> = <span class="hljs-keyword">new</span> <span class="hljs-built_in">FilesystemIterator</span>(<span class="hljs-keyword">__DIR__</span>, <span class="hljs-built_in">FilesystemIterator</span>::SKIP_DOTS); <span class="hljs-keyword">echo</span> <span class="hljs-string">"There are "</span>. iterator_count(<span class="hljs-variable">$iterator</span>). <span class="hljs-string">" files in the directory"</span>; </code></code>
Le résultat est le suivant :
<code> <code class="language-bash hljs">There are 4 files <span class="hljs-keyword">in</span> the directory </code></code>
Par conséquent, nous pouvons utiliser la classe FilesystemIterator()
pour compter le nombre de fichiers dans un répertoire.
Nous pouvons utiliser la fonction glob()
和 count()
函数来获取目录中的文件数。 glob()
pour donner un tableau de fichiers et de dossiers correspondant à un modèle spécifié.
Nous pouvons utiliser * pour obtenir tous les fichiers d'un répertoire. Ensuite, nous pouvons utiliser la fonction count()
pour obtenir le nombre d'éléments dans ce tableau.
Par exemple, créez une variable $path pour stocker le chemin exact du répertoire où les fichiers doivent être comptés. Ensuite, utilisez pour concaténer les variables $pathglob()
函数并将该变量与 /*
.
En conséquence, un tableau de tous les fichiers de myDir est créé. Enfin, utilisez la fonction glob()
函数的结果使用 count()
sur le résultat de la fonction glob()
.
De cette façon, vous pouvez vérifier le nombre de fichiers dans le répertoire myDir. L'exemple de code suivant représente la structure de fichier utilisée dans le premier exemple.
Exemple de code :
<code> <code class="language-php hljs"><span class="hljs-variable">$path</span> =<span class="hljs-variable">$_SERVER</span>[<span class="hljs-string">'DOCUMENT_ROOT'</span>].<span class="hljs-string">"/myDir"</span>; <span class="hljs-variable">$num</span> = count(glob(<span class="hljs-variable">$path</span> . <span class="hljs-string">"/*"</span>)); <span class="hljs-keyword">echo</span> <span class="hljs-variable">$num</span>; </code></code>
Le résultat est le suivant :
<code> <code class="language-bash hljs">4 </code></code>
Cette méthode est similaire à la deuxième méthode. La seule différence ici est que nous utilisons la fonction scandir()
函数而不是 glob()
.
Nous pouvons fournir le chemin du répertoire en paramètre à la fonction scandir(). Cette fonction renvoie un tableau contenant tout le contenu du répertoire, y compris .
和 ...
Ensuite, nous pouvons utiliser la fonction count()
函数来获取目录中内容的数量。 最后,重要的部分是将 count()
函数的结果减去 2,以去除 .
和 ...
pour obtenir le nombre de contenus dans le répertoire. Enfin, la partie importante est de soustraire 2 du résultat de la fonction
.
Par conséquent, nous pouvons obtenir le nombre exact de fichiers dans le répertoire.
Exemple de code :
<code> <code class="language-php hljs"><span class="hljs-variable">$path</span> =<span class="hljs-variable">$_SERVER</span>[<span class="hljs-string">'DOCUMENT_ROOT'</span>].<span class="hljs-string">"/myDir"</span>; <span class="hljs-variable">$num</span> = count(scandir(<span class="hljs-variable">$path</span>))-<span class="hljs-number">2</span>; <span class="hljs-keyword">echo</span> <span class="hljs-string">"there are <span class="hljs-subst">$num</span> files in the directory"</span>; </code></code>🎜 Le résultat est le suivant :🎜
<code> <code class="language-bash hljs">there are 4 files <span class="hljs-keyword">in</span> the directory </code></code>
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!