PHP lire les sous-répertoires et boucle au travers de fichiers comment?
J'ai besoin de créer une boucle sur tous les fichiers dans des sous-répertoires. Pouvez-vous s'il vous plaît aider moi struct mon code comme ceci:
$main = "MainDirectory";
loop through sub-directories {
loop through filels in each sub-directory {
do something with each file
}
};
- qu'aimeriez-vous faire avec les fichiers après la boucle à travers eux?
- Cela va vous aider, lisez l'utilisateur contribué notes php.net/manual/en/function.scandir.php
Vous devez vous connecter pour publier un commentaire.
Utilisation RecursiveDirectoryIterator en conjonction avec RecursiveIteratorIterator.
$file
dans le ci-dessus est un exemple de SplFileInfo, avec les méthodes qui l'accompagnent (getBasename, getSize, etc) - m'a fallu un peu de temps pour comprendre cela.$file->isDir
,$file->isDot
sont aussi très utiles.Vous voudrez probablement utiliser une fonction récursive pour cela, dans le cas où votre sous-répertoires ont des sous-sous-répertoires
n'ai pas testé le code, mais ce devrait être proche de ce que vous voulez.
while($file = readdir($dirHandle){
, sinon fonctionne parfaitement! Merci.Vous devez ajouter le chemin d'accès à votre appel récursif.
J'aime
glob
avec des caractères génériques :Des détails et des scénarios plus complexes.
Mais si Vous avez une complexe structure des dossiers
RecursiveDirectoryIterator
est définitivement la solution.Allez, essayez d'abord de vous-même!
Ce que vous aurez besoin de:
et bien sûr
foreach
http://php.net/manual/en/function.is-dir.php
http://php.net/manual/en/function.scandir.php
Une autre solution à lire avec des sous-dossiers et sous-dossiers (corriger les foldername):
Modification mineure sur ce que Jean Marty posté, si nous pouvons éliminer tous les éléments qui sont nommés . ou ..