Affichier gif en fonction de l'extension ??

[Résolu]
Signaler
Messages postés
106
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
1 octobre 2020
-
Messages postés
106
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
1 octobre 2020
-
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

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
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/
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
// 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.
Messages postés
106
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
1 octobre 2020

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
Messages postés
106
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
1 octobre 2020

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