IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Configuration] Comptage de fichiers bizarre


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Par défaut [Configuration] Comptage de fichiers bizarre
    Bonjour,
    Je souhaite compter le nombre de fichiers *.jpg dans un dossier, et les lister.

    Pour cela, j'ai fait un mignon petit script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $dir="./images/imagesdiaporama/ESSAI/"; 
    $diropen=opendir($dir);
    $i=0;
    while($file=readdir($diropen)){
    	$extension= strtolower(substr(strrchr( $file, "." ), 1 ));
    	if($extension==="jpg"){
    		@$ext=count($file)+$ext;
    			echo "Fichier JPG trouvé n°$i - $file<br>";
    		}
    	$i++;
    }
    echo "Nombre de fichiers correspondants à l'extension JPG : $ext<br>";
    Bon, ça marche bien sauf que je n'ai que ces fichiers *.jpg dans le dossier, mais que PHP m'en trouve 2 autres (j'ai pourtant la config qu'il faut pour voir les fichiers cachés sous winxp)...

    Si je change le script pour trouver ces 2 fichiers, voici ce que je récolte :
    Fichier JPG trouvé n°0 - .
    Fichier JPG trouvé n°1 - ..
    Fichier JPG trouvé n°8 - Thumbs.db
    Nombre de fichiers correspondants à l'extension JPG : 3
    Bon, pour thumbs, OK, pas de problème... mais les 2 autres, comment faire en sorte qu'ils n'apparaissent pas?
    Merci !

  2. #2
    Membre émérite Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Par défaut
    Bonsoir,

    Il faut faire un test pour exclure ces deux répertoires et c'est obligatoire, bein que je pense que normalement si tu ne prends que l'extension tu ne devrais pas avoir ce problème. Peut-être faudrait-il vérifier ta fonction.

    Ensuite, je ne sias pas si cela est important pour toi, mais dans ce script tu ne fait que vérifier l'extension du fichier. En php , il existe une fonction permettant d'avoir le type MIME du fichier et donc d'être sur qu'il s'agit d'une image JPG. il s'agit de la fonction mime_content_type


    Par contre je ne comprends pas pourquoi tu fais un count($file), au lieu de faire simplement $ext++

    Bonne soirée

  3. #3
    Membre chevronné Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Par défaut
    Bonsoir,
    Et merci de la réponse rapide !

    La fonction mime_content_type semble être la solution... Je vais essayer tout de suite !

    Par contre je ne comprends pas pourquoi tu fais un count($file), au lieu de faire simplement $ext++
    Je débute, alors je fais pas mal de bêtises ou de tests inutiles pour utiliser les fonctions....

    Si c'est bien là la réponse à mon souci, je mettrai résolu dès que j'aurai terminé le test !

    Merci et bonne soirée !
    Gamin

  4. #4
    Membre chevronné Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Par défaut
    Désolé mais j'ai une
    Fatal error: Call to undefined function: mime_content_type() in c:\program files\....\xx.php on line 1
    J'ai pourtant bien le fichier magic.mime...

    Faut-il configurer le php.ini pour cette fonction?

  5. #5
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Citation Envoyé par mathieugamin
    Désolé mais j'ai une

    J'ai pourtant bien le fichier magic.mime...

    Faut-il configurer le php.ini pour cette fonction?
    Oui : il faut activer l'extension mime_magic.dll
    NB : la doc PHP conseille d'utiliser fileinfo à la place.

  6. #6
    Membre chevronné Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Par défaut
    Bonjour,
    J'ai bien activé l'extension, mais j'ai encore une erreur...
    Est-ce que ça peut être dû à un fichier endommagé?

    Voici l'erreur :
    Fatal error: mime_magic could not be initialized, magic file (null) is not avaliable in c:\program files\...\fichiers\test_dp.php on line 10
    Est-ce que cela dit quelque chose à quelqu'un?

    Merci

  7. #7
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Je sens que je vais poser une question bête mais... je ne comprends pas comment ce code peut donner cette sortie. Même si le recours à count() est frauduleux, le test sur l'extension DOIT éliminer les fichiers ., .. et thumbs.db.

    Je viens de tester chez moi avec une petite modif (je lis un tableau et non pas un répertoire) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $dir = array( ".", "..", "thumbs.db", "un.jpg", "deux.jpg" );
    $i=0;
    foreach ( $dir as $file ) {
    	$extension= strtolower(substr(strrchr( $file, "." ), 1 ));
    	if($extension=="jpg"){
    		$ext=count($file)+$ext;
    		echo "Fichier JPG trouvé n°$i - $file<br>";
    	}
    	$i++;
    }
    echo "Nombre de fichiers correspondants à l'extension JPG : $ext<br>";
    En sortie :
    Fichier JPG trouvé n°3 - un.jpg
    Fichier JPG trouvé n°4 - deux.jpg
    Nombre de fichiers correspondants à l'extension JPG : 2
    Y-ay-til une subtilité qui m'échappe ??????

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Configuration d'un fichier de build
    Par spidetra dans le forum ANT
    Réponses: 1
    Dernier message: 31/01/2006, 13h06
  2. [Configuration] Inclure un fichier .c dans une page PHP
    Par Korma dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 18/01/2006, 12h49
  3. Pb de comptage de fichiers dans un dossier
    Par oz80 dans le forum Access
    Réponses: 2
    Dernier message: 15/11/2005, 14h26
  4. chargement fichier bizarre
    Par jiceher dans le forum C++
    Réponses: 14
    Dernier message: 28/08/2005, 14h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo