[PHP] lister dossier et fichier séparément
Résolu
zecka
Messages postés
129
Statut
Membre
-
zecka Messages postés 129 Statut Membre -
zecka Messages postés 129 Statut Membre -
Bonjour,
J'ai un dossier qui contient une page php et 10 dossier remplis d'image .jpg
En gros j'aimerai que ma page php crée dynamique une page avec les lien vers les dossier en haut de page et les fichier correspondant en dessous
Comment procéder ?
J'ai un dossier qui contient une page php et 10 dossier remplis d'image .jpg
En gros j'aimerai que ma page php crée dynamique une page avec les lien vers les dossier en haut de page et les fichier correspondant en dessous
Comment procéder ?
A voir également:
- [PHP] lister dossier et fichier séparément
- Fichier bin - Guide
- Fichier epub - Guide
- Dossier appdata - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
3 réponses
<?php
function scanDirectories($rootDir, $allData=array()) {
// set filenames invisible if you want
$invisibleFileNames = array(".", "..", ".htaccess", ".htpasswd");
// run through content of root directory
$dirContent = scandir($rootDir);
foreach($dirContent as $key => $content) {
// filter all files not accessible
$path = $rootDir.'/'.$content;
if(!in_array($content, $invisibleFileNames)) {
// if content is file & readable, add to array
if(is_file($path) && is_readable($path)) {
// save file name with path
$allData[] = $path;
// if content is a directory and readable, add path and name
}elseif(is_dir($path) && is_readable($path)) {
// recursive callback to open new directory
$allData = scanDirectories($path, $allData);
}
}
}
return $allData;
}
?>
Exemple:
print_r(scanDirectories("www")); retourne
---
Array
(
[0] => www/index.php
[1] => www/admin.php
[3] => www/css/css.css
[4] => www/articles/2007/article1.txt
[4] => www/articles/2006/article1.txt
[8] => www/img/img1.png
)
Abandonne ce qui te trouble au profit de ce qui apaise ton coeur.
Salut,
Tu crées une fonction qui liste et trie les dossiers :
Et tu crées une fonction listeFichiers(), exactement la même, mais tu remplaces is_dir par is_file.
Ces fonctions sont simples, tu peux le faire récursivement (si c'est un dossier tu rappelles la fonction listeDossier($chemin.$f); ).
Attention, beaucoup de personnes font l'erreur d'utiliser is_dir($f) ou is_file($f). Il ne faut surtout pas oublier d'y ajouter le chemin du dossier ouvert avec opendir().
Ps : Tu peux combiner les deux fonctions en mettant un else à if(is_dir(..)). Ce sera plus pratique.
;-)
Tu crées une fonction qui liste et trie les dossiers :
function listeDossiers($chemin){
$dossier = opendir($chemin); // On ouvre le dossier
if($dossier){ // Si ca marche
while($f = readdir($dossier)){ // On liste fichiers et dossiers
if(is_dir($chemin.$f)){
echo "Dossier : $f"<br>";
}
}
}
}
Et tu crées une fonction listeFichiers(), exactement la même, mais tu remplaces is_dir par is_file.
Ces fonctions sont simples, tu peux le faire récursivement (si c'est un dossier tu rappelles la fonction listeDossier($chemin.$f); ).
Attention, beaucoup de personnes font l'erreur d'utiliser is_dir($f) ou is_file($f). Il ne faut surtout pas oublier d'y ajouter le chemin du dossier ouvert avec opendir().
Ps : Tu peux combiner les deux fonctions en mettant un else à if(is_dir(..)). Ce sera plus pratique.
;-)