Newsgroup: it.comp.www.php
Titolo: ordinare nomi cartelle per data

ciao a tutti,
ho provato questo script che dovrebbe visualizzare e ordinare la lista delle 
cartelle, ma funziona solo se pongo $maindir="." se invece metto un percorso 
non visualizza nulla :( ecco il codice...
<?
$maindir = "\download/motogp/foto2004/" ;
$mydir = opendir($maindir) ;
// SORT
$directorios = array();
while (false !== ($fn = readdir($mydir)))
{
if (is_dir($fn) && $fn != "." && $fn != "..")
{
$directory = getcwd()."/$fn";
$key = date("Y\-m\-d\-His ", filectime($directory));
$directorios[$key] = $directory;
}
}
ksort($directorios);
$cronosdir = array();
$cronosdir = array_reverse($directorios);
while (list($key, $directory) = each($cronosdir)) {
echo "$key = $directory<bR>";
}
?> 

"schumi83" <flyschu...@TOGLIlibero.it> ha scritto nel messaggio 
news:VpsLd.476417$b5.22...@news3.tin.it...

up :( 

 $maindir = "\download/motogp/foto2004/" ;
Questo percorso è un pò bruttino.
Cos'e' questo dritto-rovescio di slash ?
-- 
Ciao,
 Fabrizio
=== 
http://www.negusweb.it
 ===

 Cos'e' questo dritto-rovescio di slash ?
provato anche senza, provato anche con il percorso assoluto (D:\ecc..) ma 
non funge :(..idee? 

schumi83 wrote:
1. > <?
2. > $maindir = "\download/motogp/foto2004/" ;
3. > $mydir = opendir($maindir) ;
4. > 
5. > // SORT
6. > $directorios = array();
7. > while (false !== ($fn = readdir($mydir)))
8. > {
9. > if (is_dir($fn) && $fn != "." && $fn != "..")
10. > {
11. > $directory = getcwd()."/$fn";
12. > $key = date("Y\-m\-d\-His ", filectime($directory));
13. > $directorios[$key] = $directory;
14. > }
15. > }
La parte dell'ordinamento dovrebbe essere corretta, ma non ho controllato
attentamente.
Comunque in questa prima parte, devi prestare molta attenzione a come
sostituisci i valori.
Infatti ogni volta si passa da riferimenti relativi ad assoluti troppo
facilmente, tanto da indurre in errore.
Mettiamo che le nostre cartelle siano
/pippo
|
|---paperino
|
|---pluto
e vogliamo farne la scansione partendo da /pippo.
Mettiamo che nella riga 2,
 $maindir="/pippo";
Nel ciclo in riga 7, il primo valore di $fn è "paperino".
Il controllo in riga 9 non è detto che vada a buon fine, perchè lo script
PHP dovrebbe girare nella cartella /pippo, visto che stiamo controllando un
percorso relativo, ovvero se 
 is_dir("paperino");
E' qui, penso, il tuo errore. Ti basta generalizzare il tuo script come
segue:
<?php
 $maindir = "/pippo" ;
 $mydir = opendir($maindir) ;
 // SORT
 $directorios = array();
 while (false !== ($fn = readdir($mydir)))
 {
  if (is_dir($maindir."/".$fn) && $fn != "." && $fn != "..")
  {
   $directory = $maindir."/$fn";
   $key = date("Y\-m\-d\-His ", filectime($directory));
   $directorios[$key] = $directory;
  }
 }
?>
Il secondo pezzo dovrebbe andar bene.
Fammi sapere.


 Fammi sapere.
non visualizza ancora nulla :( ma come mai non da neanche errore?:( 

 non visualizza ancora nulla :( ma come mai non da neanche errore?:(
Sei proprio sfaticato, eh? :-)
Questo è testato.
<?php
 $dir="/usr";
 $dh=opendir($dir);
 // SORT
 $directorios = array();
 while (false !== ($fn = readdir($dh)))
 {
  if (is_dir($dir."/".$fn) && ($fn != ".") && ($fn != ".."))
  {
   $directory = $dir."/".$fn;
   $key = date("Y\-m\-d\-His ", filectime($directory));
   $directorios[$key] = $directory;
  }
 }
 
 ksort($directorios);
 $cronosdir = array();
 $cronosdir = array_reverse($directorios);
 
 while (list($key, $directory) = each($cronosdir)) {
  echo "$key = $directory<bR>";
 }
?>
-- 
