Flux rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Php test si c'est un repertoire ou un fichier

marie, le samedi 5 avril 2008 à 14:12:27
Bonjour,
Je souhaiterai connaitre le code php pour testersi l'élement d'une liste est un dossier ou un fichier
is-dir n'a pas l'aire de fonctionner.. voila mon code

<?php
$chemin="./test/";
if ($handle = opendir($chemin))
{
while (false !== ($file = readdir($handle)))
{
if(($file != '..') && ($file !='.') && ($file !='Thumbs.db'))
{
if(is_dir($file))
{ $file = '/'.$file; } // -> ca ne change rien alors que !is_dir($file) rajoute un /
// -> pour tous les éléments (fichiers ou dossiers)

}
}
closedir($handle);
}
?>


Commment dois je faire?
Merci pour toutes vos suggestions!
Configuration: Windows XP
Firefox 2.0.0.13
Répondre à marie  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
stpunky, le samedi 5 avril 2008 à 16:21:36
Peut étre peut tu verifier pour chaques valeurs si le nom est de type *.* ou *.extension si tu connai le type des fichiers

Par exemple pour des images :

  $handle = opendir('.');

  while ( $file = readdir($handle) ){

	if(ereg(".jpg",$file)||ereg(".JPG",$file)||ereg(".bmp",$file)||ereg(".BMP",$file)){

   		 $files[] = $file;

	}

  }

  closedir($handle);



Ce qui règle aussi le problème du "if(($file != '..') && ($file !='.') && ($file !='Thumbs.db'))"
Répondre à stpunky

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marie, le dimanche 6 avril 2008 à 13:47:00
Bonjour et merci de m'avoir répondu
Ton idée m'a l'air bonne, je vais commencé par faire ca.
Le problème c'est qu'il reste tous les fichiers dont je ne connais pas l'extension..

Du coup il me faudrait quand même une solution pour tester si c'est un dossier.
Répondre à marie

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 stpunky, le lundi 7 avril 2008 à 12:40:39
En remplacant le :
if(ereg(".jpg",$file)||ereg(".JPG",$file)||ereg(".bmp",$fil­e)||ereg(".BMP",$file))

par :
if(preg_match('`^:alnum:`',$file)&&preg_match('`:alnum:$`',$file)&&strpos($file,'.')&& ($file !='Thumbs.db'))


Tu aura alors tous les nom de type *.* sachant que l'on ne met que trés rarement un "." dans le nom d'un dossier.

A vérifier pour les caractères spéciaux.
Répondre à stpunky
Toutes les réponses pour « php test si c'est un repertoire ou un fichier »