Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1462 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Fonction opendir

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Fonction opendir

n°2275691
slr56
Tout problème a sa solution.
Posté le 15-02-2016 à 12:15:23  profilanswer
 

Bonjour,

 

Dans une page PHP, j'utilise la fonction opendir.

 
Code :
  1. $repertoire = opendir('site/dossiers/galerie/lingerie/photos');
  2. echo 'repertoire : ' . $repertoire . '<br />';
 

Résultat :

 
Code :
  1. repertoire : Resource id #4
 

Pourquoi m'affiche-t-il "Resource id #4" au lieu du chemin indiqué dans la variable ? Problème de définition de variable ?

 

Slr56


Message édité par slr56 le 15-02-2016 à 12:18:37

---------------
Configurations type du moment : http://forum.hardware.fr/hfr/Hardw [...] 1331_1.htm  https://www.jouannetphotographe.com
mood
Publicité
Posté le 15-02-2016 à 12:15:23  profilanswer
 

n°2275697
mechkurt
Posté le 15-02-2016 à 12:45:33  profilanswer
 

opendir() retourne un pointeur sur un dossier qui pour être utilisé avec les fonctions closedir(), readdir() et rewinddir().  
 
http://php.net/manual/fr/function.opendir.php


---------------
D3
n°2275704
slr56
Tout problème a sa solution.
Posté le 15-02-2016 à 13:52:16  profilanswer
 

mechkurt a écrit :

opendir() retourne un pointeur sur un dossier qui pour être utilisé avec les fonctions closedir(), readdir() et rewinddir().  
 
http://php.net/manual/fr/function.opendir.php


 
 
Effectivement, mais dans ce cas, comment puis-je procéder pour compter les fichiers dans ce dossier ? Car quand je fais la chose suivante, je n'obtiens pas le bon résultat :
 
 
 

Code :
  1. $nbfichiers = 0;
  2.      $repertoire = opendir('site/dossiers/galerie/lingerie/photos');
  3.      while ($fichier = readdir($repertoire))
  4.      {
  5.       $nbfichiers++;
  6.      }


 
 
nbfichiers a pour valeur "9" alors qu'il y a 5 fichiers dans le dossier. Ils sont tous au format jpg.


---------------
Configurations type du moment : http://forum.hardware.fr/hfr/Hardw [...] 1331_1.htm  https://www.jouannetphotographe.com
n°2275707
mechkurt
Posté le 15-02-2016 à 14:06:34  profilanswer
 

Fait un écho de ton fichier pour debugger, tu as surement le . et  le .. ce qui nous amène à 7, je sais pas trop ce que peuvent être les 2 autres...
 
Tu as scandir() aussi a partir de php 5.4 qui te dispense d'utiliser un pointeur :
http://php.net/manual/fr/function.scandir.php


---------------
D3
n°2275710
Trajet
Posté le 15-02-2016 à 14:19:43  profilanswer
 

slr56 a écrit :


 
 
Effectivement, mais dans ce cas, comment puis-je procéder pour compter les fichiers dans ce dossier ? Car quand je fais la chose suivante, je n'obtiens pas le bon résultat :
 
 
 

Code :
  1. $nbfichiers = 0;
  2.      $repertoire = opendir('site/dossiers/galerie/lingerie/photos');
  3.      while ($fichier = readdir($repertoire))
  4.      {
  5.       $nbfichiers++;
  6.      }


 
 
nbfichiers a pour valeur "9" alors qu'il y a 5 fichiers dans le dossier. Ils sont tous au format jpg.


 
Utilise le code suivant pour afficher le contenu réel de ton répertoire :
 

Code :
  1. $dir    = 'site/dossiers/galerie/lingerie/photos';
  2. $files1 = scandir($dir);
  3. print_r($files1);


 
Je suis un peu rouillé en php, mais as tu des sous répertoires dans /photos qui ne sont pas des fichiers ? Si ça se trouve c'est ça tes deux inconnus.

n°2275715
slr56
Tout problème a sa solution.
Posté le 15-02-2016 à 14:35:20  profilanswer
 

Trajet a écrit :


 
Utilise le code suivant pour afficher le contenu réel de ton répertoire :
 

Code :
  1. $dir    = 'site/dossiers/galerie/lingerie/photos';
  2. $files1 = scandir($dir);
  3. print_r($files1);


 
Je suis un peu rouillé en php, mais as tu des sous répertoires dans /photos qui ne sont pas des fichiers ? Si ça se trouve c'est ça tes deux inconnus.


 
Merci Trajet, je vais essayé ça.
 
Et non, il n'y a pas de sous-répertoire dans /photos. :)


---------------
Configurations type du moment : http://forum.hardware.fr/hfr/Hardw [...] 1331_1.htm  https://www.jouannetphotographe.com
n°2275716
slr56
Tout problème a sa solution.
Posté le 15-02-2016 à 14:42:08  profilanswer
 

Trajet,

 

Maintenant, avec le bout de code que tu m'as donné, je sais ce qu'il m'affiche (d'ou les 9 éléments comptabilisés précédemment) :

 
Code :
  1. [0] => .
  2. [1] => ..
  3. [2] => sv01.jpg
  4. [3] => sv02.jpg
  5. [4] => sv03.jpg
  6. [5] => sv04.jpg
  7. [6] => sv05.jpg
 

Mais que peuvent être les objets 0 et 1 ?

 

Quelque chose me dit que c'est lié à l'arborescence... mais comment traiter ?

Message cité 1 fois
Message édité par slr56 le 15-02-2016 à 14:45:07

---------------
Configurations type du moment : http://forum.hardware.fr/hfr/Hardw [...] 1331_1.htm  https://www.jouannetphotographe.com
n°2275725
Trajet
Posté le 15-02-2016 à 17:14:50  profilanswer
 

slr56 a écrit :

Trajet,
 
Maintenant, avec le bout de code que tu m'as donné, je sais ce qu'il m'affiche (d'ou les 9 éléments comptabilisés précédemment) :
 

Code :
  1. [0] => .
  2. [1] => ..
  3. [2] => sv01.jpg
  4. [3] => sv02.jpg
  5. [4] => sv03.jpg
  6. [5] => sv04.jpg
  7. [6] => sv05.jpg


 
Mais que peuvent être les objets 0 et 1 ?
 
Quelque chose me dit que c'est lié à l'arborescence... mais comment traiter ?


 
. ==> current directory (le répertoire actuel)
.. ==> parent directory (celui qui contient l'actuel)
Pour les traiter, un truc du style if(nomFichier != . && nomFichier != ..) devrait marcher. Après il doit sans doute exister une fonction permettant de gérer ça nativement sans faire un if tout dégueulasse, mais comme je te l'ai dit précédemment, je suis rouillé. :o


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Fonction opendir

 

Sujets relatifs
[C] Problème d'affichage dans le résultat de ma fonction CSouci pour exécuter fonction ajax au chargement de la page
Fonction et procedureCopie de fichiers vers dossiers en fonction du nom de fichier
[D3.JS] Fonction d3.layout.stackfonction Si imbrique exel
[Ada][Resolu]Ambiguïté à l'appel d'une fonction en POOProblème fonction opendir
Pb avec la fonction opendirpb fonction opendir() sur serveur distant
Plus de sujets relatifs à : Fonction opendir


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR