Problème av listeur de répertoire

thedjpredator Messages postés 19 Date d'inscription dimanche 20 janvier 2002 Statut Membre Dernière intervention 27 mars 2008 - 20 févr. 2008 à 00:14
thedjpredator Messages postés 19 Date d'inscription dimanche 20 janvier 2002 Statut Membre Dernière intervention 27 mars 2008 - 20 févr. 2008 à 11:00
Bonjour,

J'ai commencé un site un php depuis peu, et j'ai quelques difficultés a comprendre certain code que parfois
j'ai chopé parci parla. Et la donc j'ai un listeur de dossier qui liste des dossiers nommés "page1,2,3,..." mais le problème c'est qu'il me liste vraiment tout les dossiers,
alors que je voudrais qu'il ne liste pas un dossier nommer "download", qu'il le saute afin qu'il ne l'affiche pas.

Voila le code de ma page :

<html>
<head>
<title>Photos</title>
</head>



<center>Année Scolaire 2006/2007

Choisissez la page :

<? //récupération du dossier racine
$root=getcwd();


//recup de la fonction de scan du repertoire pour php
//recup du scan
$listing_dossier=scandir($root);
$taille_array=count($listing_dossier);


//boucle affichage
for($i=0;$i<$taille_array;$i++)
{
if(is_dir($listing_dossier[$i]) && $listing_dossier[$i]!=".." && $listing_dossier[$i]!="." && !ereg("thumbnail",$listing_dossier[$i]))
{
   ?>




<? $chaine = str_replace("page", "Page ", $listing_dossier[$i]); ?>


   / [photo.php?dossier=<?print($listing_dossier[$i]);?> <?print($chaine);?>]
   <? }
}?>
/

[
</center>

</html>

Merci d'avance.

4 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 févr. 2008 à 08:03
Hello,

<?php
// tableau de répertoires/fichiers interdits
$aForbidden = array('download', '.', '..');

// filtre : on retourne uniquement les répertoires, qui ne sont pas dans le tableau des interdictions, et qui ne contiennent pas le mot "thumbnail"
function myDirFilter($v) {
    global $aForbidden;
    return(!in_array($v, $aForbidden) && is_dir($v) && false === strpos($v, 'thumbnail'));
}

$listing_dossier = scandir('.');

// on applique notre filtre
$listing_dossier = array_filter($listing_dossier, 'myDirFilter');

// on boucle et on affiche (à toi de remettre ton code d'affichage à partir d'ici)
foreach($listing_dossier as $sDir) {
    echo $sDir;
}
?>
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 févr. 2008 à 08:04
Ah, faut que tu remettes $root dans le scandir() aussi.
thedjpredator Messages postés 19 Date d'inscription dimanche 20 janvier 2002 Statut Membre Dernière intervention 27 mars 2008
20 févr. 2008 à 10:56
Bah bien merci :p j'crois avoir compris ton code (merci pr les explications)

Mais j'ai aussi remi $root dans le scandir() comme d'origine et il met une erreur :

Fatal error: Call to undefined function: scandir() in /mnt/124/sdb/1/9/scramb/photos/photos2/index.php on line 22

Voila le code :

<html>
<head>
<title>Photos</title>
</head>




<center>Année Scolaire 2007/2008

Choisissez la page :








<?php
// tableau de répertoires/fichiers interdits
$aForbidden = array('download', '.', '..');




// filtre : on retourne uniquement les répertoires, qui ne sont pas dans le tableau des interdictions, et qui ne contiennent pas le mot "thumbnail"
function myDirFilter($v) {
    global $aForbidden;
    return(!in_array($v, $aForbidden) && is_dir($v) && false === strpos($v, 'thumbnail'));
}




$listing_dossier = scandir($root);




// on applique notre filtre
$listing_dossier = array_filter($listing_dossier, 'myDirFilter');




// on boucle et on affiche (à toi de remettre ton code d'affichage à partir d'ici)




//boucle affichage
for($i=0;$i<$taille_array;$i++)
{
if(is_dir($listing_dossier[$i]) && $listing_dossier[$i]!=".." && $listing_dossier[$i]!="." && !ereg("thumbnail",$listing_dossier[$i]))
{
   ?>






<? $chaine = str_replace("page", "Page ", $listing_dossier[$i]); ?>
   / [photo.php?dossier=<?print($listing_dossier[$i]);?> <?print($chaine);?>]
   <? }
}?>




?>






 





 



/

[


</center>

</html>











 
thedjpredator Messages postés 19 Date d'inscription dimanche 20 janvier 2002 Statut Membre Dernière intervention 27 mars 2008
20 févr. 2008 à 11:00
Excuse moi problème résolu merci encore j'avais zapé d'remttre la fonction du scan
Rejoignez-nous