PHP récursive chemin d'accès au répertoire
j'ai cette fonction pour renvoyer le full directory tree
:
function getDirectory( $path = '.', $level = 0 ){
$ignore = array( 'cgi-bin', '.', '..' );
//Directories to ignore when listing output. Many hosts
//will deny PHP access to the cgi-bin.
$dh = @opendir( $path );
//Open the directory to the handle $dh
while( false !== ( $file = readdir( $dh ) ) ){
//Loop through the directory
if( !in_array( $file, $ignore ) ){
//Check that this file is not to be ignored
$spaces = str_repeat( ' ', ( $level * 4 ) );
//Just to add spacing to the list, to better
//show the directory tree.
if( is_dir( "$path/$file" ) ){
//Its a directory, so we need to keep reading down...
echo "<strong>$spaces $file</strong><br />";
getDirectory( "$path/$file", ($level+1) );
//Re-call this same function but on a new directory.
//this is what makes function recursive.
} else {
echo "$spaces $file<br />";
//Just print out the filename
}
}
}
closedir( $dh );
//Close the directory handle
}
mais ce que je veux faire est de rechercher un fichier/dossier et de le renvoyer du chemin, comment puis-je le faire? avez-vous une telle fonction, ou pouvez-vous me donner quelques conseils sur la façon de faire cela?
OriginalL'auteur kmunky | 2010-03-07
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser RecursiveIteratorIterator en combinaison avec RecursiveDirectoryIterator
Lecture supplémentaire:
OriginalL'auteur Gordon
Oui je ne.
J'ai effectivement posé une question similaire, tôt ce matin, mais je l'ai trouver. Le problème que j'ai, c'est que les noms de fichier . et .. sont retournés par readdir() et ils créent des problèmes lorsque vous tentez de fonctions opendir (). Quand j'ai filtré sur ces, mon récursivité a parfaitement fonctionné. Vous pouvez modifier le format dans lequel il produit les répertoires correspondant à la recherche. Ou de le modifier à la sortie de tous les fichiers et répertoires. Trouver une image pour "go.jpg" et de l'essayer.
Je ne peux pas trouver mon post pour informer que j'ai trouvé la solution.
OriginalL'auteur Jerry Wickey