Page 1 sur 1

afficher le nombre des images qui sont dans les dossiers

Posté : 24 juil. 2005, 12:43
par cccp
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"; ?>

Posté : 24 juil. 2005, 14:20
par Cyrano
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.

Posté : 24 juil. 2005, 19:39
par fab
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>