Liste des fichiers d'un répertoire

Petit nouveau ! | 2 Messages

29 avr. 2012, 23:07

Bonsoir,

je vous explique mon problème :
/* repertoire du dossier */
$rep = "uploads/telechargements/test/";
$dir = opendir($rep);

while ($f = readdir($dir)) 
{	
   if(is_file($rep.$f)) 
	   {
	   $tab_dir[] = $f;
	   }
}

/* on trie le tableau obtenu */
natcasesort($tab_dir);

echo '<div align="center" style="background-image: url(./uploads/telechargements/icones/download.png); background-position: 15px -10px; background-repeat: no-repeat; font-size: smaller; width:270px ; margin-left: 0px; padding:2px ; border-left:1px solid #FFFFFF ; border-right:1px solid #FFFFFF ; border-bottom:1px solid #FFFFFF ; border-top:1px solid #FFFFFF; height:72px; margin-top:-78px;">';

echo '<ul style="line-height:0px;">';

/* on affiche chaque element */
foreach($tab_dir as $elem) 
{

if (preg_match("#.pdf$#", $elem)) {
    $icon="Pdf.png";
} elseif (preg_match("#.xlsx$#", $elem)) {
    $icon="Excel.png";
} elseif (preg_match("#.xls$#", $elem)) {
    $icon="Excel.png"; 
} elseif (preg_match("#.docx$#", $elem)) {
    $icon="Word.png";  
} elseif (preg_match("#.doc$#", $elem)) {
    $icon="Word.png";  
} elseif (preg_match("#.pptx$#", $elem)) {
    $icon="PowerPoint.png";  
} elseif (preg_match("#.ppt$#", $elem)) {
    $icon="PowerPoint.png";  
} elseif (preg_match("#.ppsx$#", $elem)) {
    $icon="PowerPoint.png";  
} elseif (preg_match("#.pps$#", $elem)) {
    $icon="PowerPoint.png";  
} elseif (preg_match("#.zip$#", $elem)) {
    $icon="Zip.png";
}else {
    $icon="inconnu.png";
}

echo '<div align="center" style="text-align:left; margin-left:50px;">
<li style="list-style-type:none;">
<a href="uploads/telechargements/CSAPA//'.$elem.'"><img src="./uploads/telechargements/icones/'.$icon.'" title="'.pathinfo($elem,PATHINFO_FILENAME).'"></a>
</td>  <td style="vertical-align:middle;"><a href="uploads/telechargements/CSAPA//'.$elem.'" title="'.pathinfo($elem,PATHINFO_FILENAME).'">'.pathinfo($elem,PATHINFO_FILENAME).'</a>
</li><br/></div>';

}

echo'</div>';
Ce code marche bien, il m'affiche bien la liste des fichiers et l’icône. Pour l'utiliser dans ma page je fais juste appelle de la manière suivante : {fichiers} (j'utilise CMSMS).
Mais j'aimerais transformer mon code de façon à ce qu'il m'affiche les fichiers d'un dossier que je lui donne en paramètre : {fichiers name='test'}
$rep = "uploads/telechargements/";
$dir = getenv("DOCUMENT_ROOT").$rep.$params['name'];
$dh  = opendir($dir);
Est-ce possible ?

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

30 avr. 2012, 09:46

Salut,

Sûrement, il faut que tu vois avec ton cms si tu peux le faire et comment il le passe (GET, post, ajout dans une variable globale etc etc).

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 2 Messages

30 avr. 2012, 15:03

C'était bien une question avec mon CMS, merci pour ton aide. J'ai du modifié quelques lignes mais tout fonctionne :wink:

Si certains veulent le code pas de soucis.