[php] fonction pr lire un répertoire!

Fermé
shako95 Messages postés 64 Date d'inscription lundi 23 mai 2005 Statut Membre Dernière intervention 29 juin 2005 - 15 juin 2005 à 12:02
dedale82 Messages postés 403 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 28 octobre 2008 - 15 juin 2005 à 13:36
Kikoo tt le monde!

Donc jai pris un 'script' pour lire les répertoire et jvoudrai l adapter à mes besoins !
Donc je voudrai afficher que le nom du fichier et la date de derniere modification !

Voilà le script brut de pomme:

function liste_dir($dir){
// $dir : dossier a lister
// $nb : nombre de fichier à retourner (0 ou omis => tout ce qui reste)
// $ordre : type de tri des donnees
// * omis : sans tri
// * "n" ou "nom" : nom du fichier
// * "e" ou "extension" : extension du fichier (.html, .php...)
// * "t" ou "s" ou "taille": taille du fichier
// * "c" ou "creation" : date de creation
// * "m" ou "modification" : date de modification

// exemple d'utilisation
// 1er appel : liste_dir(".", 6, "nom");
// liste les 6 premiers fichiers du dossier courant, par ordre alphabetique
// 2eme appel : liste_dir(".", 6);
// liste les 6 fichiers suivants du dossier courant, par ordre alphabetique
// lorsqu'il n'y a plus d'élément, le tableau retourné est vide (count() == 0);

// 3eme appel : liste_dir(".");
// liste tous les derniers elements

global $liste_dir_array;

if (!is_dir($dir)){ return FALSE;}

// gerer des fichiers en //
if (!isset($liste_dir_array[$dir]) || !is_array($liste_dir_array[$dir])){
$pwd = getcwd();
chdir($dir);
$liste_dir_array[$dir] = array();
$x = array();
$handle=opendir(".");
while ($file = readdir($handle)) {
if (!in_array($file, array('.', '..'))){
$x[$file] = $file;
}
}
if (func_num_args() == 3){
$ordre = func_get_arg(2);
} else {
$ordre = "";
}
$ordre = strtolower($ordre);

switch ($ordre) {
case "nom" :
case "n":
$fonction = create_function('&$val', '$val;');
break;
case "creation" :
case "c" :
$fonction = create_function('&$val', '$val = filectime($val);');
break;
case "modification" :
case "m" :
$fonction = create_function('&$val', '$val = filemtime($val);');
break;
case "taille" :
case "t":
case "s":
$fonction = create_function('&$val', '$val = filesize($val);');
break;
case "extension" :
case "e" :
$fonction = create_function('&$val', 'if (ereg(".", $val)) { $val =
substr($val, 1+strrpos($val, ".")); } else { $val = $val;}');
break;
default:
$fonction = create_function('&$val', 'global $liste_dir_compteur; $val =
$liste_dir_compteur++;');
}
array_walk($x, $fonction);
print_r($x);
asort($x);
$liste_dir_array[$dir]= array_keys($x);
closedir($handle);
chdir($pwd);
}

if (func_num_args() == 1) {
$nb = count($liste_dir_array[$dir]);
} else {
$nb = func_get_arg(1);
if ($nb == 0) { $nb = count($liste_dir_array[$dir]);}
}

$retour = array_splice($liste_dir_array[$dir], 0, $nb);
return $retour;
}

Et ossi pour m en servir, je dois faire une page .htm qui l appelle ?

Merciiiiiiii
A voir également:

1 réponse

dedale82 Messages postés 403 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 28 octobre 2008 282
15 juin 2005 à 13:36
0