[Php] - Question simple...

Résolu
WDAssos Messages postés 70 Statut Membre -  
Reivax962 Messages postés 3742 Statut Membre -
Salutations,

J'ai juste une question simple.
Je cherche à compter, QUELQUE SOIT LA TAILLE DE L'EXTENSION (Majuscules comme minuscules), les fichiers dépandant d'une certaine extension...

En gros, j'ai dans un dossier des ".JPG" et des ".jpg", et je cherche à comptabiliser l'ensemble...
Pour l'instant, j'en suis la :

"(...)

<?
$rep = '../pict/photos';
$vig = '../pict/photos/thumbs';
$ext = 'jpg';
$extup = 'JPG';
$ipl = '4';
$wid = '120';
$widtab = '96%';
$bor = '0';
$cpd = '0';
$cpd = '0';
$cls = 'art';

//Donne l'extension d'un fichier
function extension($fichier)
{
ereg("\.([^\.]*$)", $fichier, $beuha);
return $beuha[1];
}

$lstrep = glob($rep.'/*.'.$ext);
$lstrepup = glob($rep.'/*.'.$extup);
$lstrep2 = current($lstrep);
// $lstrep3 = strtolower($lstrep); // on met en minuscule
$comptrep = count($lstrep);
$comptrepup = count($lstrepup);

$lstvig = glob($vig.'/*.'.$ext);
$lstvigup = glob($vig.'/*.'.$extup);
$lstvig2 = current($lstvig);
$comptvig = count($lstvig);
$comptvigup = count($lstvigup);

// extension du fichier
$xploderep = explode('.',$lstrep2);
$extensionrep = $xploderep[sizeof($xploderep)-1]; // dernier element
//
echo 'Extension du fichier final : '.$extensionrep.'<br />';

// extension du fichier
$xplodevig = explode('.',$lstvig2);
$extensionvig = $xplodevig[sizeof($xplodevig)-1]; // dernier element
// $extensionvig = strtolower($extensionvig); // on met en minuscule
echo 'Extension du fichier vignette : '.$extensionvig.'<br />';

echo '<div align="center">';
echo '<table width="'.$widtab.'" border="'.$bor.'" cellpadding="'.$cpd.'" cellspacing="'.$csc.'"><tr>';
echo '<td align="center">Nombre de photos : '.$comptrep.'<br />Nombre de photos (Maj.) : '.$comptrepup.'</td>';
echo '<td align="center">Nombre de miniatures : '.$comptvig.'<br />Nombre de miniatures (Maj.) : '.$comptvigup.'</td>';
echo '</tr></table>';
(...)"

Mais je pense que mon code est un poil fastidieux...

A vous lire,

5 réponses

  1. WDAssos Messages postés 70 Statut Membre
     
    Esc9G : Oui, aussi, mais peu importe, une fois que je saurais faire pour 2, 3 ça ne sera pas un pb... ;-)

    khalilkhalil : Heu, je n'ai rien compris... Speak English ?
    0
  2. WDAssos Messages postés 70 Statut Membre
     
    Aucune idée ?

    A vous lire,

    MaT.
    0
  3. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    Tu pourrais essayer quelque chose comme ça.
    L'avantage, c'est que tu définis sans problème autant d'extensions / de répertoires que tu veux, sans devoir modifier tout le code.

    <?php
    
        //Donne l'extension d'un fichier
        function extension($fichier)
        {
            ereg("\.([^\.]*$)", $fichier, $beuha);
            return strtolower($beuha[1]);
        } 
        
        function getTypeFromFichier($fichier)
        {
            $type = "";
            $ext = extension($fichier);
            
            switch ($ext)
            {
                case "bmp":
                case "gif":
                case "jpg":
                case "png":
                    $type = $ext;
                    break;
                case "jpeg":
                    $type = "jpg";
                    break;
                default:
                    $type = "autre";
                    break;
            }
            
            return $type;
        }
        
        // On initialise le tableau qui contient les données
        $repertoiresAChercher = array();
        $repertoiresAChercher[] = array("chemin" => '../pict/photos', "nom" => 'photos', "detail" => array());
        $repertoiresAChercher[] = array("chemin" => '../pict/photos/thumbs', "nom" => 'vignettes', "detail" => array());
        
        // On boucle sur ce tableau
        foreach($repertoiresAChercher as $cle => $valeur)
        {
            // Pour chaque chemin, on parcourt tous les fichiers
            $rep = opendir($valeur['chemin']);
            while (false !== ($fichier = readdir($rep)))
            {
                if($fichier != '..' && $fichier !='.' && $fichier != '' && !is_dir($rep."/".$fichier))
                {
                    $type = getTypeFromFichier($fichier);
                    if (!isset($repertoiresAChercher[$cle]['detail'][$type]))
                        $repertoiresAChercher[$cle]['detail'][$type] = 0;
                    $repertoiresAChercher[$cle]['detail'][$type]++;
                }
            }
        }
        
        // $repertoiresAChercher contient maintenant pour chaque répertoire à chercher, son chemin, son nom, et un tableau donnant pour chaque type de fichier le nombre existant.
        // On le parcourt à nouveau pour l'affichage.
        foreach($repertoiresAChercher as $rep)
        {
            echo "<div>Nombre de ".$rep['nom']." : <blockquote>";
            foreach($rep["detail"] as $cle => $valeur)
                echo "$cle : $valeur fichiers<br />";
            echo "</blockquote></div>";
        }
    ?>


    Xavier

    PS : j'ai codé ça à l'instant, sans tester. Il peut y avoir des erreurs de syntaxe, je te laisse les résoudre. Tu peux toujours me poser des questions s'il le faut, mais je ne répondrai sans doute pas avant demain.
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. khalilkhalil
     
    pour vous il faut travailler c tres simple moi 2 année informatique et je sais comment fait cet algorithme allez fait le principe apres .....................................................
    -3