[PHP] Distinguer un réperoire d'un fichier sans extension

Distinguer un réperoire d'un fichier sans extension [PHP] - PHP - Programmation

Marsh Posté le 06-05-2003 à 12:27:54    

Salut !
 
   J'ai fait un script qui liste les fichiers et les sous-répertoires d'un répertoire. Il distingue les fichiers des répertoires grâce au point qui se trouve avant l'extension.
 
Problème : il plante lorsque les fichiers n'ont pas d'extension (c'est rare mais ça arrive)
 
    Comment puis-je distinguer un fichier sans extension d'un répertoire ?


---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
Reply

Marsh Posté le 06-05-2003 à 12:27:54   

Reply

Marsh Posté le 06-05-2003 à 12:34:07    

:o  
 

Code :
  1. is_dir();
  2. is_file();


 
ca sert à quoi su'il se décarcasse PHP ? [:ddr555]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 06-05-2003 à 15:01:39    

[:spikler]  
c'est vrai que c t tout simple,
je me suis compliqué la vie pour rien...


---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
Reply

Marsh Posté le 06-05-2003 à 15:22:49    

rectification : je ne me suis pas compliqué la vie pour rien :
ces fonctions is_file et is_dir semblent n'être pas vraiment au point !
 
is_dir considère que les répertoires n'ayant pas de sous-répertoires sont des fichiers... super cool !


---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
Reply

Marsh Posté le 06-05-2003 à 15:24:42    

sire de botcor a écrit :


is_dir considère que les répertoires n'ayant pas de sous-répertoires sont des fichiers... super cool !


Non, j'utilise ces fonctions régulièrement et j'ai pas ce problème. T'as le bout de code qui fait ça à nous montrer ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 06-05-2003 à 15:35:45    

j'en profite , j'ai un petit probleme, voiola mon bout de code :
 
 
$directory="c:/tmp";
 
$dir = opendir($directory);
 
while ($file = readdir($dir))
{
     if (is_dir($directory.$file))
     {
        $subdirs[] = $directory.$file.'/';
     }
     elseif(is_file($directory.$file))
     {
        echo $file.'<br>';
     }
}
closedir($dir);
 
 
ben ca m'affiche quedalle, alors qu'il y a bien des fichiers...
qqu'un sait pkoi ?

Reply

Marsh Posté le 06-05-2003 à 15:35:46    

// listeFichiers() permet de lister tous les fichiers
// d'un répertoire donné
function listeFichiers($rep)
{
   $handle=opendir($rep);
   while ($fic = readdir($handle))  
   {
      if ($fic!="." && $fic!=".." && is_file($fic))  
      {
       $tabFichiers[]="$fic";
      }
   }
   return $tabFichiers;
}
// cette fonction est appelée de nombreuses fois par  
// l'intermédiaire d'autres fonctions.


---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
Reply

Marsh Posté le 06-05-2003 à 15:43:23    

Dans le désordre :
Sire de Botcor : is_dir et is_file prennent en argument le chemin complet vers le fichier. Si tu veux tester C:\Temp\mytext.txt alors is_file("mytext.txt" ) ne marchera pas. Fais une concaténation.
 
RedRidingHood : je dirais que c'est parce que tu n'as pas mis de séparateur au tout début : $directory = "C:\\tmp\\"; (pis utilise des \ aussi, j'sais pas si ça joue mais bon). A chaque itération, fais un echo de ce que tu testes et tu verras de suite quel est le problème.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 06-05-2003 à 15:45:01    

je teste ca !

Reply

Marsh Posté le 06-05-2003 à 15:48:19    

ca roule !!! merci !

Reply

Marsh Posté le 06-05-2003 à 15:48:19   

Reply

Marsh Posté le 06-05-2003 à 16:32:51    

tu as raison  
 [:spikler]  
j'aurais dû y penser lorsque j'ai changé mon code


Message édité par sire de Botcor le 06-05-2003 à 16:33:15

---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
Reply

Sujets relatifs:

Leave a Replay

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