Page 1 sur 1

afficher un seul format de fichier

Posté : 03 août 2010, 18:03
par MF-M
Bonjour a tous

Voila je rencontre quelque petit soucis pour afficher un seul format de fichier dans ma liste déroulante.
Ma liste contient plusieurs fichiers de type .avi, .flv, .swf, .xml et j'aimerai afficher dans ma liste déroulante uniquement les fichier .xml
echo "<select name='xml'>";
echo "<option value='...'>...</option>";

$xml = $_POST['xml'];				    
$dir = opendir("./../module/video");
$fichier = readdir($dir);
while ($fichier = readdir($dir)) {
$liste[] = $fichier;
}
closedir($dir);
sort($liste); // tri par ordre alphabetique						        
foreach ($liste as $fichier) {            
if ($fichier != "." && $fichier != "..") {
if ($fichier == $xml) {   
echo " <option selected value=\"$fichier\">".$fichier."</option>";
}
else {
echo " <option value=\"$fichier\">".$fichier."</option>";
}
}
}

echo "</select>";
merci pour votre aide

Re: afficher un seul format de fichier

Posté : 03 août 2010, 18:07
par stealth35
hello, regarde du coté de glob :wink:

Re: afficher un seul format de fichier

Posté : 03 août 2010, 18:52
par MF-M
Bonjour stealth35
Merci pour ta réponce rapide et efficace
Pour ceux a qui ca interresse
echo "<select name='xml'>";
echo "<option value='...'>...</option>";

$xml = $_POST['xml']; 
$dir = opendir("./../module/video");
$fichier = readdir($dir);
while ($fichier = readdir($dir)) {
$liste[] = $fichier;
}
closedir($dir);
sort($liste); // tri par ordre alphabetique 
$liste = glob("./../module/video/*.xml");
foreach ($liste as $fichier) { 
if ($fichier != "." && $fichier != "..") {
$fichier = ltrim($fichier, "./../module/video/");
if ($fichier == $xml) { 
echo " <option selected value=\"$fichier\">".$fichier."</option>";
}
else {
echo " <option value=\"$fichier\">".$fichier."</option>";
}
}
}

echo "</select>";
il y a peut-être moyen d'alléger ce code mais bon cela fonctionne parfaitement.
Merci encore pour ta réponce rapide

Re: afficher un seul format de fichier

Posté : 03 août 2010, 19:04
par stealth35
oui ca sert pu a rien ca
$dir = opendir("./../module/video");
$fichier = readdir($dir);
while ($fichier = readdir($dir)) {
$liste[] = $fichier;
}
closedir($dir);
sort($liste); // tri par ordre alphabetique 
pas besoin de faire ca aussi : if ($fichier != "." && $fichier != "..") puisque qu'il recupere que les .xml
ni ca : if ($fichier == $xml)
pour : $fichier = ltrim($fichier, "./../module/video/"); c'est basename

on arriverai a ca
echo "<select name='xml'>";
echo "<option value='...'>...</option>";

$xml = $_POST['xml'];
$liste = glob("./../module/video/*.xml");

foreach ($liste as $fichier)
{
    $fichier = basename($fichier);
        
    if ($fichier == $xml)
    {
        echo "<option selected=\"selected\" value=\"$fichier\">".$fichier."</option>";
    }
    else
    {
        echo " <option value=\"$fichier\">".$fichier."</option>";
    }
}

echo "</select>";

Re: afficher un seul format de fichier

Posté : 03 août 2010, 19:13
par MF-M
Merci stealth35

Effectivement c'est bien plus claire et plus facile à comprendre.
Je vais pouvoir faire du ménage sur quelques autres pages.

Merci encore pour ton aide.
@+
mig