Affichier gif en fonction de l'extension ??

Résolu
xzonz Messages postés 107 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 23 novembre 2022 - 2 mai 2007 à 21:54
xzonz Messages postés 107 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 23 novembre 2022 - 4 mai 2007 à 15:18
Salut à toutes et tous ...
une ptite

j'ai un script qui affiche le contenu d'un repertoire
si c'est un dossier ... icone dossier
si c'est un fichier ...

j'aimerais maintenant ajouter des gifs et afficher les extensions les
plus communes gif  jpeg ... etc

j'ai deja la fonction qui permet de recuperer l'extension

mais il doit y avoir mieux que de tester cette extension dans la boucle d'affichage

voici le bout de code pour l'affichage
pourriez vous me donner un exemple car je ne connait vraiment pas la meilleure maniere
de parvenir a ce que je veux !!

merci d'avance

Franck

------------------------------------------------------------------------------------
 while ($sortie_de_la_boucle==false)
{



 // Récupère les entrées contenu dans le repertoire une par une
 // -----------------------------------------------------------
 $entree=readdir($handle_du_repertoire_ouvert); // Readdir lit le fichier suivant dans un dossier





 // Condition de sortie de la boucle
 // --------------------------------
 if ($entree=="")
 $sortie_de_la_boucle=true;
 else



 // Affichage
 // ---------
 if (($entree!="."))



 //if (is_dir($entree)!=1) // N'afiche pas les répertoires
 //if (($entree!="index.php")&&($entree!=".htaccess")&&($entree!=".htpasswd")) // N'affiche pas les fichiers selectionnés
 
 if (is_dir($entree)) //affichage repertoire
    {
    echo " http://www....../fichiers.gif
align=absbottom> ".$entree."
";
       }
   }
}

4 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
2 mai 2007 à 22:37
Salut,

Pour lire le contenu du répertoire, préfère cette syntaxe :
while (false !($file readdir($handle))) {
echo "$file\n";
}
C'est pas moi qui le dis, c'est la doc de php : http://ch2.php.net/manual/fr/function.readdir.php

Sinon :
if (($entree!="index.php")&&($entree!=".htaccess")&&($entree!=".htpasswd"))

Je pense qu'il est possible de faire mieux, avec par exemple un tableau contenant les fichiers à ne pas afficher :
$no_display = array('index.php', '.htaccess', '.htpasswd');
if (!in_array($file, $no_display))

Sinon, je ne vois pas d'autre solution que de tester l'extension et d'afficher telle ou telle image avec une série de if() elseif() elseif() else();
Attention, elseif et else if, ce n'est pas pareil...

ereg("\.([^\.]*$)", $fichier, $elts);
echo $elts[1];

Source : http://www.phpinfo.net/page/archives/regex/
3
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
3 mai 2007 à 07:00
// On affiche le fichier si son affichage est autorisé.
if (is_file($entree) && !in_array($entree, $no_display))
{
//On récupère l'extension
ereg("\.([^\.]*$)", $fichier, $elts);
$ext = $elts[1];

// On définit l'icone en fonction de l'extension
$icone = $ext . 'png';
echo ' ['.$chemin.$entree.' '.$entree.']
';
}

Préfère les simples quotes, c'est plus propre. Par contre, pour le code html, les double quotes, c'est obligatoire.

Il faudrait rajouter un test sur l'existence du fichier de l'icone, si inexistante, afficher une icone par défaut.
3
xzonz Messages postés 107 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 23 novembre 2022
3 mai 2007 à 01:40
merci pour les conseils

j'ai appliqué !!

en revanche quand je teste l'extension dans la boucle d'affichage
ca ne fonctionne pas ... il affiche la meme icone sur tous les fichiers
et ne tiens pas compte du test if esleif else ...

aurais tu un exemple de syntaxe  qui puisse s'integrer dans mon code car la  ...
je dois louper quelque chose ... j'ai essayé plein de trucs mais visiblement ca va pas

au secour please

merci !!

Franck
0
xzonz Messages postés 107 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 23 novembre 2022
4 mai 2007 à 15:18
ok j'ai fait ça !!

ca marche impec

merci beaucoup !

ps: y'a plus qu'a rajouter le test si inexistant

mais ca je devrais y arriver

merci encore
Bye

Franck
0