Récupération de la date d'un fichier en PHP ??

Récupération de la date d'un fichier en PHP ?? - PHP - Programmation

Marsh Posté le 28-09-2007 à 23:52:09    

Bonjour,
 
Je viens de faire un code qui me permet de récupérer dans un tableau tous les fichiers d'un répertoire.
J'aimerai avoir dans ce tableau une seconde colonne qui me donne la date de création (ou de modification) du fichier. Voilà ce que j'ai fait :

Code :
  1. <?php
  2. function listing($repertoire){
  3. $fichier = array();
  4. if (is_dir($repertoire)){
  5.  $dir = opendir($repertoire);                              //ouvre le repertoire courant désigné par la variable
  6.  while(false!==($file = readdir($dir))){                             //on lit tout et on récupere tout les fichiers dans $file
  7.   if(!in_array($file, array('.','..'))){            //on eleve le parent et le courant '. et ..'
  8.    $page = $file;                            //sort l'extension du fichier
  9.    $page = explode('.', $page);
  10.    $nb = count($page);
  11.    $nom_fichier = $page[0];
  12.    for ($i = 1; $i < $nb-1; $i++){
  13.     $nom_fichier .= '.'.$page[$i];
  14.    }
  15.    if($ext_fichier != 'php' and $ext_fichier != 'html') {        //utile pour exclure certains types de fichiers à ne pas lister
  16.     array_push($fichier, $file);
  17.    }
  18.   }
  19.  }
  20. }
  21. natcasesort($fichier);                                    //la fonction natcasesort( ) est la fonction de tri standard sauf qu'elle ignore la casse
  22. foreach($fichier as $value) {
  23.   echo '<tr>
  24.           <td><p align="center"><a href="'.rawurlencode($repertoire).'/'.rawurlencode(str_replace ('/', '', $value)).'">'.$value.'</a></p></td>
  25.         <td><p align="center">'.date ("d/m/Y", filemtime($file)).'</p></td>
  26.         </tr>';
  27. }
  28. }
  29. //exemple d'utilisation :
  30. listing('winter');        //chemin du dossier
  31. ?>


Mais ça ne me donne pas la bonne date (01/01/1970 pour tous les fichiers).
Je pense que ça déconne au niveau de mon filemtime($file), $file ne devant pas être la bonne variable, mais je ne sais pas quoi mettre...
Merci de votre aide.
 
PS : Est-il possible de récupérer le nom de fichier de cette page PHP, à savoir que cette je voudrais, dans la page page3.php pouvoir récupérer le nom page3 en variable ?


---------------
MATOS VELO - Club Strava Matos Vélo
Reply

Marsh Posté le 28-09-2007 à 23:52:09   

Reply

Marsh Posté le 29-09-2007 à 02:06:55    

Il te faut le chemin du fichier si tu regardes bien, $file est défini bien plus haut et correspond pas vraiment à ce que tu cherches.  
 
 
Tu veux récupérer le nom du script en cours c'est bien ça? Regarde du côte de la variable $_SERVER (tableau contenant entre autre ce que tu cherches).

Reply

Marsh Posté le 29-09-2007 à 09:09:27    

Je ne peux pas définir le nom du fichier puisque justement ce script se charge de recenser les fichiers d'un répertoire automatiquement en les transformant en liens.
 
Pour ce qui est de $_SERVER, j'ai fait le test, mais impossible par la suite de le faire fonctionner dans listing.


---------------
MATOS VELO - Club Strava Matos Vélo
Reply

Marsh Posté le 29-09-2007 à 13:21:48    

Mais c'est juste qu'il faut que tu récupères la bonne info au bon endroit au bon moment :spamafote:
Puisque tu récupères les infos pour faire un lien, tu peux passer ce chemin en paramètres :spamafote:
 
Pour le fichier en cours utilises __FILE__ plutot en fait :d

Reply

Marsh Posté le 29-09-2007 à 13:36:31    

Euh...désolé, totalement débutant, donc rien compris.


---------------
MATOS VELO - Club Strava Matos Vélo
Reply

Marsh Posté le 29-09-2007 à 13:43:31    

Tu veux la date de modif du fichier (tu les listes un par un dans un répertoire donné). Vu que tu récupères le nom de fichier pour faire le lien, tu l'utilises pour récupérer la taille :spamafote:
 
Pour le nom du fichier en cours d'utilisation tu l'as dans la constante __FILE__

Reply

Marsh Posté le 29-09-2007 à 14:09:51    

Indice: il faut le chemin réel complet ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed