petit problème avec une classe PHP

petit problème avec une classe PHP - PHP - Programmation

Marsh Posté le 20-06-2003 à 14:37:29    

Bonjour j'ai un problème avec la classe suivante:

Code :
  1. class explorer
  2. {
  3.   //nom du dossier:
  4.   var $dirName ;
  5.   //constructeur:
  6.   function explorer($dirName)
  7.   {
  8.     $this->dirName = $dirName ;
  9.   }
  10. //récupère l'extension du fichier passé en paramètre:
  11. function getExtension($fileName)
  12. {
  13.  $extension = substr($fileName, (strrpos($fileName,"." )+1), (strlen($fileName)-strrpos($fileName,"." ))) ;
  14.  $icone     = $this->checkIcone($extension) ;
  15.  return $icone ;
  16. }//fin fonction getExtension()
  17. //retourne l'icone correspondant à l'extension du fichier passé en paramètre:
  18. function checkIcone($ext)
  19. {
  20.  switch($ext)
  21.  {
  22.   case "jpg"  : $icone = "image1.gif";  break;
  23.   case "gif"  : $icone = "image1.gif";  break;
  24.   case "png"  : $icone = "image1.gif";  break;
  25.   case "bmp"  : $icone = "image1.gif";  break;
  26.   case "tif"  : $icone = "image1.gif";  break;
  27.   case "c"    : $icone = "script.gif";  break;
  28.   case "cpp"  : $icone = "script.gif";  break;
  29.   case "mpg"  : $icone = "movie.gif";   break;
  30.   case "avi"  : $icone = "movie.gif";   break;
  31.   case "mov"  : $icone = "movie.gif";   break;
  32.   case "pdf"  : $icone = "pdf.gif";   break;
  33.   case "ps"   : $icone = "script.gif";  break;
  34.   case "zip"  : $icone = "zip.gif";   break;
  35.   case "ace"  : $icone = "zip.gif";   break;
  36.   case "tar"  : $icone = "zip.gif";   break;
  37.   case "gz"   : $icone = "zip.gif";   break;
  38.   case "uu"   : $icone = "zip.gif";   break;
  39.   case "bat"  : $icone = "bat.gif";   break;
  40.   case "css"  : $icone = "text.gif";   break;
  41.   case "sql"  : $icone = "text.gif";   break;
  42.   case "txt"  : $icone = "text.gif";   break;
  43.   case "mp3"  : $icone = "sound.gif";   break;
  44.   case "wav"  : $icone = "sound.gif";   break;
  45.   case "au"   : $icone = "sound.gif";   break;
  46.   case "mid"  : $icone = "sound.gif";   break;
  47.   case "rtf"  : $icone = "quill.gif";   break;
  48.   case "doc"  : $icone = "doc.gif";   break;
  49.   case "xls"  : $icone = "excel.gif";   break;
  50.   case "ppt"  : $icone = "ppt.gif";   break;
  51.   case "pps"  : $icone = "script.gif";  break;
  52.   case "inc"  : $icone = "script.gif";  break;
  53.   case "php"  : $icone = "script.gif";  break;
  54.   case "php3" : $icone = "script.gif";  break;
  55.   case "php4" : $icone = "script.gif";  break;
  56.   case "com"  : $icone = "com.gif";   break;
  57.   case "css"  : $icone = "script.gif";  break;
  58.   case "inc"  : $icone = "script.gif";  break;
  59.   case "asp"  : $icone = "script.gif";  break;
  60.   case "html" : $icone = "html.gif";   break;
  61.   case "htm"  : $icone = "html.gif";   break;
  62.   case "exe"  : $icone = "exe.gif";   break;
  63.   default     : $icone = "unknown.gif";  break;
  64.  }//fin switch
  65.      return $icone;
  66. }//fin fonction checkIcone()
  67. //explore le répertoire sélectionné en paramètre:
  68. function browseDir()
  69. {
  70.  //si le nom du dossier est valide:
  71.  if(is_dir($this->dirName))
  72.  {
  73.   //ouverture du dossier:
  74.   $handle = opendir($this->dirName) ;
  75.   //tableau ou on va stocker les noms des fichiers:
  76.   $fileTab = array() ;
  77.   //on lis le contenu du répertoire:
  78.   $i = 0 ;
  79.   while($file = readdir($handle))
  80.   {
  81.    if ($file != "." && $file != ".." )
  82.    {
  83.     if(is_file($this->dirName."/".$file))
  84.     {
  85.      //on rempli le tableau avec le chemin des fichiers:
  86.      $fileTab[$i] = $this->dirName."/".$file ;
  87.      $i++ ;
  88.     }//fin if
  89.       }//fin if
  90.   }//fin while
  91.   //fermeture du dossier:
  92.   closedir($handle) ;
  93.   //on trie le tableau pour que les fichiers soient affichés dans l'ordre alphabétique:
  94.   sort($fileTab) ;
  95.   //on rajoute l'icone associé au fichier:
  96.   for($i=0; $i<sizeof($fileTab); $i++)
  97.   {
  98.    for($j=0; $j<sizeof($fileTab[$i]); $j++)
  99.    {
  100.     $fileTab[$i][$j] = $this->getExtension($fileTab[$i]) ;
  101.    }
  102.   }//fin for
  103.   //affichage du tableau des données:
  104.   for($i=0; $i<sizeof($fileTab); $i++)
  105.   {
  106.    for($j=0; $j<sizeof($fileTab[$i]); $i++)
  107.     echo("fileTab[$i][$j] = ".$fileTab[$i][$j]."<br>\n" ) ;
  108.   }//fin for
  109.  }
  110.  //sinon on affiche un message d'erreur:
  111.  else
  112.  {
  113.   echo("<b>Attention le dossier n'existe pas</b>" ) ;
  114.  }
  115. }//fin fonction browseDir()
  116. }


 
Mon problème est que, quand le récupère l'icone correspondant à l'extension du fichier passée en paramètre, la seconde dimension de mon tableau n'a la valeur que du premier caractère du nom de l'icone correspondante.
Par exemple, si vous lui passez un .gif en paramètre de checkIcone, et bien seule la première lettre de 'image1.gif' soit 1, est dans mon tableau, et je ne comprends pas pourquoi :?
J'ai peut-être oublié un truc mais là je ne voit pas  :??:  
 
:)

Reply

Marsh Posté le 20-06-2003 à 14:37:29   

Reply

Marsh Posté le 22-06-2003 à 08:12:38    

up
 :bounce:  
 
:)

Reply

Sujets relatifs:

Leave a Replay

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