Afficher le poids du fichier

cs_pyranhaz Messages postés 236 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 13 décembre 2004 - 29 sept. 2004 à 14:52
magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009 - 29 sept. 2004 à 16:13
Bonjour,

J'aimerais ajouter l'indication du poids du fichier à afficher dans le code ci-dessous, mais je ne sais pas comment m'y prendre

<?php
$date =  date("Y-m-d");

function listeFileTri ($path,$inf,$tri)
{
    $Array = array();
    $nbFichier = 0;

    if ($dir = @opendir($path))
    {
        while($file = readdir($dir))
        {
            if ($file !="." && $file != "index.php")
            {
                if (is_file($path."/".$file))
                {
                    $Array[] = "$file";
                    $nbFichier++;
                }
            }
        }
    }
    closedir($dir);

    if ($nbFichier!=0)
    {
        $num = 1;
        $cfg_num = 5;//Nombre de chiffres dans la barre de navigation
        $nbpp = 10;//nombre de résultats par "page"
        if (!isset($inf)) $inf = 0;// var. pour la navigation dans le répertoire
        $sup = $inf + $nbpp;

        print (" Il y a $nbFichier fichiers");
        print ("$path
\n");

        if($tri == 'DESC')
        {
            rsort($Array); 
        }
        else
        { 
            sort($Array); 
        } 

        $Max = count($Array);

        for($i = 0; $i <$Max; $i++)
        {
            if (($num>$inf)&&($num<=$sup))
            {
        echo ' <li> ['.$Array[$i].' '.$Array[$i].']
</li>';
            }
            $num++;
        } 

        print ("
\n");

        if ($inf >= ($cfg_num * $nbpp))
        {
            $compteur_fin = ($inf / $nbpp) + 1;
            $compteur_deb = $compteur_fin - $cfg_num + 1;
        }
        else
        {
            $compteur_deb = 1;
            $compteur_fin = (int)($nbFichier / $nbpp);

            if (($nbFichier % $nbpp) != 0)
            { 
                $compteur_fin++;
            }

            if  ($compteur_fin > $cfg_num)
            {
                $compteur_fin = $cfg_num;
            }
        }

        for ($compteur = $compteur_deb; $compteur <= $compteur_fin; $compteur++)
        {
            if ($compteur == ($inf / $nbpp) + 1)
            {
                $barre .= "  ".$compteur."  ";
            }
            else
            {
                $barre . = " ".$compteur." ";
            }
        }
        print ("[$barre]\n");
        print ("
\n");

        if ($inf >=  $nbpp) 
        {
            // Début
            echo "<< ";
            // Précédent
            echo "<";
        }
        else
        {
            // Début sans lien
            echo "<< ";
            //      echo "|";
            // Précédent sans lien
            echo "<";
        }
        print (" - ");

            if ($inf + $nbpp < $nbFichier) 
        {
            // Suivant
            echo "> ";

            // Fin
            $pos = ($nbFichier - ($nbFichier % $nbpp));            if (($nbFichier % $nbpp) 0) $pos $pos - $nbpp;
            echo ">>";
        }
        else
        {
            // Suivant
            echo "> ";

            // Fin
            $pos = ($nbFichier - ($nbFichier % $nbpp));            if (($nbFichier % $nbpp) 0) $pos $pos - $nbpp;
            echo ">>";
        }
        print ("
\n");
    }
    else
    {
        print ("Il n'y a pas de fichiers dans le répertoire  $path \n");
    }
}

// paramètre    ($tri) : "ASC" ou "DESC" (A-Z ou Z-A) --> ASC par défaut
$tri =DESC;

listeFileTri(".",$inf,$tri);

?>

5 réponses

magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
29 sept. 2004 à 15:25
fstat
(PHP 4 , PHP 5)

fstat -- Lit les informations sur un fichier à partir d'un pointeur de fichier
Description
array fstat ( resource handle)

fstat() rassemble les informations sur le fichier dont on connaît le pointeur handle. fstat() est similaire à la fonction stat(), hormis le fait qu'elle utilise un pointeur de fichier, au lieu d'un nom de fichier.

fstat() retourne un tableau avec les éléments suivants :

volume

inode

nombre de liens

id de l'utilisateur propriétaire

id du groupe propriétaire

type du volume de l'inode *

taille en octets

date du dernier accès

date de la dernière modification

date du dernier changement

taille de bloc du système pour les entrées/sorties(*)

nombre de blocs alloués

* - uniquement sur les systèmes qui supportent le type st_blksize. Les autres systèmes (i.e. Windows) retournent -1.

Note : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() plus de détails.

Note : Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Voila, si ca peut aider ;-) ca vient du manuel PHP

*************
On a parfois de la chance dans son malheur, moi par exemple, je me suis blessé avec une boite de sparadraps (P.Geluck)

Si vous désirez vous ajouter dans mes contacts MSN, veuillez m'envoyer un message via ce site.
0
cs_pyranhaz Messages postés 236 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 13 décembre 2004
29 sept. 2004 à 15:30
bien merci !

je n'en demandait pas tant...
0
magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
29 sept. 2004 à 15:33
Lol ca vient du manuel PHP g pas tapé tout ca, mais ca peut aider si c'est ca que tu cherche ;-)

*************
On a parfois de la chance dans son malheur, moi par exemple, je me suis blessé avec une boite de sparadraps (P.Geluck)

Si vous désirez vous ajouter dans mes contacts MSN, veuillez m'envoyer un message via ce site.
0
cs_pyranhaz Messages postés 236 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 13 décembre 2004
29 sept. 2004 à 16:04
Il doit avoir quelque chose que je n'ai pas saisi...

J'ai ajouté la ligne suivante
$fp = fopen($file, "r");
$fstat = fstat($fp);


et j'ai une erreur

dans mon cas $file est le fichier généré listé
emnsuite il doit regardé la taille de ce fichier et me l'afficher avec le lien à ce fichier

je cherche juste à connaître d'un coup d'oeil la taille de chaque fichier généré dont je peux avoir accès pour lire mes logs

j'ai pris l'exemple ici (mais je n'arrive pas à l'appliquer dans mon cas):

http://www.nexen.net/docs/php/annotee/function.fstat.php
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
29 sept. 2004 à 16:13
Dans ton lien que tu as mis :

// affiche le résultat
print_r(array_slice($fstat, 13));

Le resultat est stocké dans un tableau, il fo extraire ce dont on a besoin

*************
On a parfois de la chance dans son malheur, moi par exemple, je me suis blessé avec une boite de sparadraps (P.Geluck)

Si vous désirez vous ajouter dans mes contacts MSN, veuillez m'envoyer un message via ce site.
0
Rejoignez-nous