Fonction opendir

Fonction opendir - PHP - Programmation

Marsh Posté le 15-02-2016 à 12:15:23    

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 : https://forum.hardware.fr/hfr/Hardw [...] 1331_1.htm  https://www.jouannetphotographe.com
Reply

Marsh Posté le 15-02-2016 à 12:15:23   

Reply

Marsh Posté le 15-02-2016 à 12:45:33    

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
Reply

Marsh Posté le 15-02-2016 à 13:52:16    

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 : https://forum.hardware.fr/hfr/Hardw [...] 1331_1.htm  https://www.jouannetphotographe.com
Reply

Marsh Posté le 15-02-2016 à 14:06:34    

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
Reply

Marsh Posté le 15-02-2016 à 14:19:43    

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.

Reply

Marsh Posté le 15-02-2016 à 14:35:20    

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 : https://forum.hardware.fr/hfr/Hardw [...] 1331_1.htm  https://www.jouannetphotographe.com
Reply

Marsh Posté le 15-02-2016 à 14:42:08    

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 : https://forum.hardware.fr/hfr/Hardw [...] 1331_1.htm  https://www.jouannetphotographe.com
Reply

Marsh Posté le 15-02-2016 à 17:14:50    

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed