PHP compter des fichiers nom+nombre.jpg

Fermé
oueb - 13 août 2008 à 17:09
 Phoenix2001 - 14 mai 2009 à 15:35
Bonjour,
J'ai besoin d'un coup de main pour compter des fichiers dans une galerie dynamique en flash(pour l'instant par fichier texte overwrite+ajout sur serveur des images).

Il y a plusieurs rubriques :par exemple illustrations les fichiers se nomment img0.jpg , img1.jpg ..et photos nommés photo0.jpg , photo1.jpg etc...

Mon but est de faire une version light en html/php donc:
je compte les fichiers img['un nombre'].jpg et pareil pour les autres rubriques.
Puis j'affiche les images en lien texte. Ayant pas un bon niveau en php j'ai fait ceci mais je doutes que ça marche:

<?php
// je compte mes fichiers qui se nomment img['un nombre'].jpg

// j'ai de sérieux doute sur la concaténisation img(n).jpg
$illustrations = glob("img[*].jpg"); 
$nb_illustrations = count($illustrations);
// je suit pas assez à l'aise en php pour placer un array pourtant ça serait pratique

while($illustrations <= $nb_illustrations){
	echo'?>
	// je passe en html
	<a href="
	<?PHP ICI LE LIEN HTML ?>
	">
	<?php NOM DE L'IMAGE JPG ?>
	</a>

	<?PHP '; ?>// on ferme echo
	</a> // balise fermante du lien html
	<br/>
 
	}

?>


Merci si vous pouvez m'aider sur ce code

2 réponses

Merci beaucoup mais hélas non,
il y a un seul dossier qui contient tout dont des images qui ne sont pas de la galerie dynamique(des images de fond etc...). Donc il me faut vraiment pouvoir compter le nombre de fichiers s'intitulant img(n).jpg. puis je ferait un autre array pour photo(n).jpg etc(il n'y a que 3 rubrique donc pas trop lourd a copier/coller)
0
Phoenix2001
14 mai 2009 à 15:35
Une petite fonction fait maison.
function CountImgPath($path) 
	{
	/*
	compte les images JPG PNG GIF dans les dossiers
	structure:
	Dossier_maitre:
			|_dossier1:
				|_image1.jpg
				|_image2.gif
				|_image3.png
			|_dossier2:
				|_image1.jpg
				|_image2.gif
				|_image3.png
			|_dossier3:
				|_image1.jpg
				|_image2.gif
				|_image3.png
			|_dossier4:
				|_image1.jpg
				|_image2.gif
				|_image3.png
		TOTAL: 12
		Peut servir également pour afficher les dossier ou les images.
	*/
	$count=0;
	$compteur = count(glob($path."/{*.gif,*.jpg,*.png}", GLOB_BRACE));
	$count = $compteur + $count;
	//echo $path.' - '.$compteur.'<br/>'; //affiche le dossier
	//compte les images dans les dossier recursif
    if ($path[strlen($path)-1] != "/")$path .= "/";
    if (is_dir($path)) 
		{
        $d = opendir($path);
		$iCpt1 = substr_count ($path,'/thumbs' ); //sauf dans ce dossier.
		if($iCpt1==0)
			{						
			while ($f = readdir($d))
				{
				if ($f != "." && $f != "..") 
					{
					$rf = $path . $f; // chemin relatif au fichier php
					$iCpt2 = substr_count ($rf,'/thumbs' );
					if (is_dir($rf)and($iCpt2==0))
						{
						$compteur = count(glob($rf."/{*.gif,*.jpg,*.png}", GLOB_BRACE));
						$count = $compteur + $count;
						//echo $rf.' - '.$compteur.'<br/>'; //affiche le dossier
						}
					}
				}
			}
		closedir($d);
		}
	return $count;
	}


appel:
$path = $_SERVER['DOCUMENT_ROOT']."/userfiles/idmember/album/";
if(is_dir($path))
	{
	echo CountImgPath($path);
	}

0
absurdsystem Messages postés 117 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 28 août 2008 50
13 août 2008 à 17:53
Slt,

Bon j'ai fai un peu le meme genre que ton probleme il y a quelques jours je v essayer de t'expliquer ça .
Par contre petit detail je sais pas comment tu organise tes rubriques mais on va admettre qu'il y a un dossier par rubrique


alors deja une petit fonction php qui compte le nombre de fichiers contenu dans un dossier


function count_files($folder)
{
// on rajoute le / à la fin du nom du dossier s'il ne l'est pas
if(substr($folder, -1) != '/')
$folder .= '/';

// ouverture du répertoire
$rep = @opendir($folder);
if(!$rep)
return '-1';

// -1 pour les erreurs

$nb_files = 0;
// tant qu'il y a des fichiers
while($file = readdir($rep))
{
// répertoires . et ..
if($file == '.' || $file == '..')
continue;

$nb_files++;
}

// fermeture du rep
closedir($rep);
return $nb_files;
}



et maintenant l'affichage des liens

$dir='nomdudossier';

//appel a la fonction count_files, retourne le nombre de fichier d'un dossier
$nb=count_files($dir);

if($nb == -1 )
{
echo 'Erreur" />';
}else{


$tab=array();

$i=0;

while($i < $nb)
{


//si il n'est pas enregistré, on le met dans le tableau de données et on incremente

if(!in_array($lien,$tab)){
array_push($tab,$lien);

//affichage
print '<p><a href="monlien">';
print '<img src="img'.$tab[$i].'.jpg" alt="" />';
print '</a></p>';
$i++;

//sinon on continue
}else{
continue;
}
}//fin while
}//fin else



voila voila
-2