8768 sujets

Développement web côté serveur, CMS

Bonjour a tous,

Voila j'avais une fonction qui retournait un tableau de l'ensemble de mes images au sein d'un dossier mais la fonction php que j'utilisais est devenue obsolète donc j'ai du en créer une autre. Mais celle ci ne fonctionne pas très bien, elle m'affiche le fichier ".DS_Store". Comment je pourrais l'enlever ?

function nb_files_folder($dossier)
{
	$tableau = ""; 	$nb = 0;
	$handle = @opendir($dossier);
	
	while($fichier = readdir($handle))
	{
		if(!in_array($fichier,array(".","..")))
		{
			$tab_image[$nb] = $fichier;
		}
		$nb++;
	}
	return $tab_image; 
}


Ma fonction avant:

function nb_files_folder($dossier)
{
	$tableau	= "";
	$nb			= 0;
	$handle		= @opendir($dossier);
	
	while ($fichier = @readdir($handle))
	{
		$extension = substr($fichier,-3);
		if($fichier!="." && $fichier!=".." && (eregi("gif",$extension) || eregi("jpg",$extension) || eregi("png",$extension)))
		{
			$listing[$fichier] = $nb;
		}
		$nb++;
	}
	$nb = ($nb - 2);
	return $nb; 
}


Merci par avance de votre aide.
IL faut utiliser les fonctions preg_* à la place des fonctions ereg*.

Plus généralement, glob pourrait t'intéresser.
Bonjour,

Pourquoi est-ce que tu n'ajoutes pas directement les fichiers indésirables directement dans ton tableau que tu testes? Un truc du genre:


if(!in_array($fichier,array(".","..",".DS_Store","Thumbs.db")))
{
	$tab_image[$nb] = $fichier;
}
$nb++;


Puisque tu testes déjà si ce n'est pas le répertoire courant ou le parent, autant ajouter tous les fichiers indésirables en même temps.

Bonne journée à toi