afficher le nombre des images qui sont dans les dossiers

cccp
Invité n'ayant pas de compte PHPfrance

24 juil. 2005, 12:43

Salut à tous!
J'ai probleme avec un script PHP.
Ce script montre le nombre total des images dans des dossiers indiqué.
Sauf que j'ai un probleme...
Avec un seul dossier ça marche bien, mais avec plusieurs ça me renvoie pas la bonne valeur. On dirrais qu'il prend en compte tout les fichiers qui sont dedant.
Aider moi SVP.

Code : Tout sélectionner

<?php $dossiers = array ("dossier1", "dossier2", "dossier3"); foreach($dossiers AS $nomdossier) { $dh = opendir($nomdossier); while (($file = readdir($dh)) !== false) { $photos[] = $file; } foreach ($photos AS $nomphoto) { if (ereg('jpg', substr("$nomphoto", -3)) OR ereg('gif', substr("$nomphoto", -3))) { $nombre_photos++; } } } echo "total : $nombre_photos"; ?>

Mammouth du PHP | 19672 Messages

24 juil. 2005, 14:20

Il faudrait que tu vérifie ce que ton script comptabilise au juste : voici le même avec quelques lignes en plus qui te permettront de voir ça:
<?php
$dossiers = array ("dossier1", "dossier2", "dossier3");
$liste_photos = array();
foreach($dossiers AS $nomdossier)
{
    $dh = opendir($nomdossier);

    while (($file = readdir($dh)) !== false)
    {
        $photos[] = $file;
    }

    foreach ($photos AS $nomphoto)
    {
        if (ereg('jpg', substr("$nomphoto", -3)) OR ereg('gif', substr("$nomphoto", -3)))
        {
            $nombre_photos++;
            array_push($liste_photos,$nombre_photos);
        }
    }
}
echo "total : $nombre_photos";
?>
<pre>
<?php
var_dump($liste_photos);
?>
</pre>
Note (de modération) : quand tu envoie du code PHP, utilise plutôt le bouton [php], ça conservera une coloration syntaxique plus facile à suivre. Et indente donc ton code, ça aussi ça aide.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
fab
ViPHP | 2657 Messages

24 juil. 2005, 19:39

petite variante, c'est plus rapide je pense et oon peut ajouter ou retirer des extensions plus facilement.
<?php 
$dossiers = array ("dossier1", "dossier2", "dossier3"); 
$liste_photos = array(); 
$extensions = array("gif","png","jpg","jpeg","bmp");
foreach($dossiers AS $nomdossier) 
{ 
    $dh = opendir($nomdossier); 

    while (($file = readdir($dh)) !== false) 
    { 
        $photos[] = $file; 
    } 

    foreach ($photos AS $nomphoto) 
    { 
        if (in_array(substr($nomphoto, -3),$extensions)) 
        { 
            $nombre_photos++; 
            array_push($liste_photos,$nombre_photos); 
        } 
    } 
} 
echo "total : " .$nombre_photos; 
?> 
<pre> 
<?php 
var_dump($liste_photos); 
?> 
</pre>