Visualizzare contenuto directory e printare dimensione,data,estenzione

Salve, come da titolo:

Io ho questo codice:

<?

//definire la cartella MADRE da analizzare
$path = "../../public/photo/global/img_small/";

//apriamo la directory
$dir_handle = @opendir($path) or die("Impossibile aprire $path");

echo "Contenuto della Directory $path<br/>";

//cuore del sistema che crea l'output
while ($file = readdir($dir_handle))
{
if($file!="." && $file!="..")
echo "<a href='$file'>$file</a><br/>";
}


//chiudere la Directory
closedir($dir_handle);

?>

Mi dite come fare ad stampare la dimensione e la estenzioene e la data di creazione del file?.

Vi ringrazio e buone vacanze

grazie.

inviato 7 anni fa
luik
luik
1
X 0 X

Per l'estensione dovrebbe essere già compresa all'interno del nome del file.

Per ritrovare la dimensione del file leggi qui:

http://us.php.net/manual/en/function.stat.php

o qui:

http://us.php.net/manual/en/function.filesize.php

Per la data dell'ultima modifica:

http://us3.php.net/manual/en/function.filemtime.php

Per altre funzioni inerenti al filesystem vedi qui:

http://it2.php.net/manual/en/ref.filesystem.php

risposto 7 anni fa
Mario Santagiuliana
X 0 X

miii, mi protesti fare un esempio con il mio codice.....

Ti ringrazio , però protesti farmi un'esempio?.

grazie.

risposto 7 anni fa
luik
luik
1
X 0 X

Da questo codice:

//cuore del sistema che crea l'output

while ($file = readdir($dir_handle))

{

if($file!="." && $file!="..")

echo "<a href='$file'>$file</a><br/>";

}

//cuore del sistema che crea l'output
while ($file = readdir($dir_handle))
{
if($file!="." && $file!="..")
echo "<a href=\"$file\">$file : ".filesize($filename)." bytes, modificato il: ".date ('j-M-y H:i', filemtime($filename)."</a><br />";
}
risposto 7 anni fa
Mario Santagiuliana
X 0 X

ok, ma mi da un errore:

Parse error: parse error in D:\xampp\htdocs\admin\photo\add_upload.php on line 49

e la stringa ed questa:

echo "<a href=\"$file\">$file : ".filesize($filename)." bytes, modificato il: ".date('j-M-y H:i',filemtime($filename)."</a><br />";

Mi dici come risolvere.?

grazie mille.

risposto 7 anni fa
luik
luik
1
X 0 X

ok, ma mi da un errore:

Parse error: parse error in D:\xampp\htdocs\admin\photo\add_upload.php on line 49

e la stringa ed questa:

echo "<a href=\"$file\">$file : ".filesize($filename)." bytes, modificato il: ".date('j-M-y H:i',filemtime($filename)."</a><br />";

Mi dici come risolvere.?

grazie mille.

Forse devi solo adattare il tutto al tuo codice e alle tue variabili:

echo "<a href=\"$file\">$file : ".filesize($file)." bytes, modificato il: ".date('j-M-y H:i',filemtime($file)."</a><br />";
risposto 7 anni fa
Mario Santagiuliana
X 0 X

ha ok, ora funziona....

grazie mille.

risposto 7 anni fa
luik
luik
1
X 0 X

Niente, leggi il codice che ti viene suggerito la prossima volta  O0

Ciao

risposto 7 anni fa
Mario Santagiuliana
X 0 X

Ho migliorato solo il codice, però ho qualche problema ...

perchè se metto il percorso come prima nel primo script che ti ho mostrato con questo codice:

<?php
//definisco il percorso come relativo

  $path = ".";



  //uso la funzione opendir

  $dir_handle = @opendir($path) or die("Non riesco ad aprire $path");

  

  //Creo una stringa di 70 spazi

  $space = str_repeat(" ", 70);

  

  echo "<PRE>";

  echo "Directory di $path\n";

  //eseguo il ciclo while

  

  while ($file = readdir($dir_handle)) {
      if($file!="." && $file!="..")
      {
         $t="<a href=$file>$file</a>";

        echo $t.substr($space,0,40-strlen($file))  ;

 

        $t=(filesize($file)/1024);

        $t=sprintf("%01.2f",$t)."kb ";

        echo substr($space,0,10-strlen($t)) . $t ;

 

        $t=date("d.M Y H:i:s", filemtime($file));

        echo $t.substr($space,0,20-strlen($file)) ;

        echo "\n";
}
  }

  closedir($dir_handle);

  echo "</PRE>";
  ?>

Mi viene cosi:

Directory di ../../public/photo/global/img_small/
18082009218.jpg                         

Warning:  filesize() [function.filesize]: stat failed for 18082009218.jpg in D:\xampp\htdocs\luik\admin\photo\add_upload.php on line 70

   0.00kb

come mai?

Mi protesti spiegarmi il motivo , perchè se metto il . allora funziona ma se metto altro path no!.

grazie.

risposto 7 anni fa
luik
luik
1
X 0 X

Avevi scritto pure qui?

http://forum.html.it/forum/showthread.php?s=&threadid=1352603

Comunque leggi la documentazione di filesize:

http://us.php.net/manual/en/function.filesize.php

E' una funzione a cui si deve passare la path del file.

Puoi provare con un semplice script a far vedere la differenza delle path con e senza punto?

Tipo:

echo filesize("percorso/del/file");
risposto 7 anni fa
Mario Santagiuliana
X 0 X

Avevi scritto pure qui?

http://forum.html.it/forum/showthread.php?s=&threadid=1352603

Comunque leggi la documentazione di filesize:

http://us.php.net/manual/en/function.filesize.php

E' una funzione a cui si deve passare la path del file.

Puoi provare con un semplice script a far vedere la differenza delle path con e senza punto?

Tipo:

echo filesize("percorso/del/file");

si sono io, quello su html.it

Però non è un problema di filesize e solo se metto il punto ad $path. allora funziona,

ma se metto un'altro percorso diverso , mi da gli avvissi.

come mai?.

risposto 7 anni fa
luik
luik
1
X 0 X

E' ovvio il perchè, non fornisci il percorso corretto del file!! Mi sembrava chiaro.

Se metti il "." allora riesci ad ottenere il percorso al file corretto, è sullo stile unix, il "./" indica la cartella in cui ci si trova(nella fattispecie la cartella in cui si trova il tuo script). Se non metti quel punto ottieni un percorso in cui il file non esiste e ti da errore.

Leggi anche la documentazione di opendir:

http://it2.php.net/function.opendir

risposto 7 anni fa
Mario Santagiuliana
X 0 X

io , non ci sto cappendo più nulla , ma mi viene solo il dubbio perchè lavoro sotto windows xp con xampp,

forse lo dovrei provarlo sotto linux..

Guarda qui:

<?php
//definisco il percorso come relativo

  //$path = "";
  $path = "$DOCUMENT_ROOT/luik/public/photo/global/img_small/";


  //uso la funzione opendir

  $dir_handle = @opendir($path) or die("Non riesco ad aprire $path");

  

  //Creo una stringa di 70 spazi

  $space = str_repeat(" ", 70);

  

  echo "<PRE>";

  echo "Directory di $path\n";

  //eseguo il ciclo while

  

  while ($file = readdir($dir_handle)) {
      if($file!="." && $file!="..")
      {
         $t="<a href=$file>$file</a>";

        echo $t.substr($space,0,40-strlen($file))  ;

 

//        t=(filesize($file)/1024);

  //      $t=sprintf("%01.2f",$t)."kb ";

    //    echo substr($space,0,10-strlen($t)) . $t ;

 

      //  $t=date("d.M Y H:i:s", filemtime($file));

//        echo $t.substr($space,0,20-strlen($file)) ;

        echo "\n";
}
  }

  closedir($dir_handle);

  echo "</PRE>";
  ?>

se faccio cosi allora funziona , ma quando attivo i filesize e filemtime , allora mi da gli avvissi.

come mai?

risposto 7 anni fa
luik
luik
1
X 0 X

Non mi sembra difficile da capire:

filesize(percorso_nome_del_file)

Se il percorso non è corretto allora gli fornisci un file inesistente e ti da errore.

risposto 7 anni fa
Mario Santagiuliana
X 0 X

Non mi sembra difficile da capire:

filesize(percorso_nome_del_file)

Se il percorso non è corretto allora gli fornisci un file inesistente e ti da errore.

riuscito, ora funziona eccoti il codice:

<?php
//definisco il percorso come relativo

  $path = "../../public/photo/global/img_small/";



  //uso la funzione opendir

  $dir_handle = @opendir($path) or die("Non riesco ad aprire $path");

  

  //Creo una stringa di 70 spazi

  $space = str_repeat(" ", 70);

  

  echo "<PRE>";

  echo "Directory di $path\n";

  //eseguo il ciclo while

  

  while ($file = readdir($dir_handle)) {

   

   

if($file!="." && $file!="..")

   

   

{
         $t="<a href=$file>$file</a>";

        echo $t.substr($space,0,40-strlen($file))  ;

 

        $t=(filesize("".$path."".$file)/1024);

        $t=sprintf("%01.2f",$t)."kb ";

        echo substr($space,0,10-strlen($t)) . $t ;

 

        $t=date("d.M Y H:i:s", filemtime("".$path."".$file.""));

        echo $t.substr($space,0,20-strlen($file)) ;

        echo "\n";
}
  }

  closedir($dir_handle);

  echo "</PRE>";
  ?>
risposto 7 anni fa
luik
luik
1
X 0 X

ancora, ultima cosa poi ho finito il lo scriptino

Con un file lungo ad esempio: _Images_XP Wallpaper 127.JPG  

mi viene solo _Images_XP  Ha, scordavo nel link <a href=$file>

come mai?.

EDIT- RISOLTO:  $t="<a href=\"$path/$file\">$file</a>";

risposto 7 anni fa
luik
luik
1
modificato 7 anni fa
X 0 X

Spett.le Mario Santagiuliana,

Ho un problema con la lettura delle cartelle e sotocartelle. Devo archiviare in un db tutto ciò che ho nei dvd fatti nel passato. ovviamente non so cosa contengono ad oggi. Ora ho  un programmino preso dal manuale php.net ma non mi memorizza i dati nel db  e non so come poter fare. Questo è quanto ho fatto:

letturadvd.php

[PHP]

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
 $sub = isset($_GET['dir']) ? $_GET['dir'] : "";  
 $path = 'e:\\';
$path = $path. "$sub";
$dh = opendir($path);
$i=1;
while (($file = readdir($dh)) !== false) {
    if($file != "." && $file != "..") {
            if (substr($file, -4, -3) =="."){
            echo "$i. $file <br />";
            }else{            
        echo "$i. <a href='?dir=$sub/$file'>$file</a><br />";
          }
        $i++;
    }
}
closedir($dh);    
        ?>
    </body>
</html>

[/PHP]

Questo mi legge l'intero contenuto del dvd e sottolinea come ipertext tutte le catelle. Cliccandoci sopra ad una si apre la sottocartella che contiene l'intero contenuto della cartella cliccata. A me servirebbe che tutto ciò venisse memorizzato sia cartelle principali e sia le sottocartelle. MI potresti dare una mano per favore ??? Aspetto una tua risposta al più prresto. Grazie.

risposto un anno fa
paperinik4
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda