[Php] - Question simple...

Résolu/Fermé
WDAssos Messages postés 59 Date d'inscription samedi 1 décembre 2007 Statut Membre Dernière intervention 10 septembre 2013 - Modifié par jipicy le 31/12/2016 à 12:08
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 24 nov. 2010 à 16:13
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,
A voir également:

5 réponses

que fais-tu des .jpeg ?
0
WDAssos Messages postés 59 Date d'inscription samedi 1 décembre 2007 Statut Membre Dernière intervention 10 septembre 2013
Modifié par jipicy le 16/12/2013 à 17:34
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
WDAssos Messages postés 59 Date d'inscription samedi 1 décembre 2007 Statut Membre Dernière intervention 10 septembre 2013
Modifié par jipicy le 16/12/2013 à 17:34
Aucune idée ?

A vous lire,

MaT.
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
24 nov. 2010 à 16:13
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

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

Posez votre question
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