Php test si c'est un repertoire ou un fichier
marie
-
xxx102 -
xxx102 -
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!
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!
A voir également:
- Php test si c'est un repertoire ou un fichier
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Test performance pc - Guide
- Steam deck oled test - Guide
3 réponses
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 :
Ce qui règle aussi le problème du "if(($file != '..') && ($file !='.') && ($file !='Thumbs.db'))"
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'))"
Vous devriez mettre :
is_dir ($chemin.'/'.$file)
Il est clairement indiqué dans la documentation PHP que is_dir renvoie false si le chemin spécifié n'existe pas.
is_dir ($chemin.'/'.$file)
Il est clairement indiqué dans la documentation PHP que is_dir renvoie false si le chemin spécifié n'existe pas.
Mauvais idée, les fichiers "." et ".." existe tjs (ce sont les répertoires racine et supérieurs ) tu as 2 fction pour ça :
glob() et scandir()
!!! si tu utilise count(scandir()), n'oublie pas que ton repertoire doit contenir plus que 2 fichiers car "." et ".." compte à chaque fois !!!
ref:
https://php.developpez.com/faq/?page=fichiers_lire#fichiers_dossier_vide
@plus
glob() et scandir()
!!! si tu utilise count(scandir()), n'oublie pas que ton repertoire doit contenir plus que 2 fichiers car "." et ".." compte à chaque fois !!!
ref:
https://php.developpez.com/faq/?page=fichiers_lire#fichiers_dossier_vide
@plus
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.
if(ereg(".jpg",$file)||ereg(".JPG",$file)||ereg(".bmp",$file)||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.