Aller au contenu

Sujets conseillés

Posté

Bonjour

Jutilise cette fonction assez connue :

function s_glob($dir, $typeFile=null)
{
$files = array();
if(is_dir($dir))
{
if($dh=opendir($dir))
{
while(($file = readdir($dh)) !== false)
{
if($typeFile == null || ereg('\.'.$typeFile.'$', $file))
{
$files[]=$dir.$file;
}
}
}
}
return $files;
}

pour lister tous les fichiers présents dans un dossier.

Un exemple :

$files = s_glob($_foo, 'jpg');

Je voudrais inclure dans cette recherche aussi les fichiers dont le filetype est exprimé en majuscules.

Comme mes connaissances en Php sont modestes, je narrive pas à trouver la bonne modification ; je ne sais pas où placer un strtolower().

Merci par avance de toute aide.

Francois

Posté

bonjour

Woops, je suis allé un peu vite, ça paraît ne pas fonctionner.

La fonction, avec les traces que jy ai ajouté :

function s_glob($dir, $typeFile=null)
{
echo "typeFile avant: ".$typeFile."<br>";
$typeFile = strtolower($typeFile); // mettre le file type en minuscules
$files = array();
if(is_dir($dir))
{
if($dh=opendir($dir))
{
while(($file = readdir($dh)) !== false)
{
// echo "typeFile while: ".$typeFile."<br>";
echo "file while: ".$file."<br>";
if($typeFile == null || ereg('\.'.$typeFile.'$i', $file))
{
echo "typeFile apres: ".$typeFile."<br>";
$files[]=$dir.$file;
}
}
}
}
return $files;
}

Les traces :

typeFile avant: jpg
file while: .
file while: ..
file while: IMG11.JPG
file while: IMG10.JPG
file while: repfam01.jpg
file while: IMG1.JPG
file while: IMG2.JPG
file while: IMG13.JPG
file while: repfam02.jpg
file while: IMG3.JPG
file while: IMG4.JPG
file while: IMG12.JPG

Il paraît bien ne pas passer dans if($typeFile == null || ereg('\.'.$typeFile.'$i', $file)).

Jai raté qqechose ?

Francois

Posté

Captain

Ma ligne est bien devenue:

if($typeFile == null || preg_match('\.'.$typeFile.'$i', $file))

mais j'ai un message d'erreur que je ne comprend pas:

Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash /homez.110/fctest/www/glob.php on line 22

Merci de ton aide.

Francois

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...