[php] fonction pr lire un répertoire!
shako95
Messages postés
64
Date d'inscription
Statut
Membre
Dernière intervention
-
dedale82 Messages postés 403 Date d'inscription Statut Membre Dernière intervention -
dedale82 Messages postés 403 Date d'inscription Statut Membre Dernière intervention -
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
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:
- [php] fonction pr lire un répertoire!
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Lire un fichier epub - Guide
- Fonction si et - Guide
- Comment lire un message supprimé sur whatsapp - Guide
- Lire fichier bin - Guide
1 réponse
Salut,
regarde les fonctions filectime() filemtime() fileatime :
http://fr2.php.net/manual/fr/function.filemtime.php
http://fr2.php.net/manual/fr/function.filectime.php
http://fr2.php.net/manual/fr/function.fileatime.php
a plus
regarde les fonctions filectime() filemtime() fileatime :
http://fr2.php.net/manual/fr/function.filemtime.php
http://fr2.php.net/manual/fr/function.filectime.php
http://fr2.php.net/manual/fr/function.fileatime.php
a plus