Lister un dossier en php et le trier

Petit nouveau ! | 8 Messages

02 août 2011, 18:13

Bonjour je dois lister un dossier en php. Pour çà c Ok avec ce code cela marche:
<?php
$nb_fichier = 0;

echo '<ul>';

if($dossier = opendir('_admin/pdf/pde/'))
{

while(false !== ($fichier = readdir($dossier)))
{

if($fichier != '.' && $fichier != '..' && $fichier != 'index.php')
{

$nb_fichier++; // On incrémente le compteur de 1
echo '<li><a href="./_admin/pdf/pde/' . $fichier . '"><img src="_img/icones/pdf_icon.png" alt="" width="15" height="15" /> ' . $fichier . ' </a></li>';
} // On ferme le if (qui permet de ne pas afficher index.php, etc.)
 
} // On termine la boucle

echo '</ul><br />';
 echo '<p>Il y a <strong>' . $nb_fichier .'</strong> fichier(s) dans le dossier</p>';

closedir($dossier);
 
}
 
else
     echo 'Le dossier n\' a pas pu être ouvert';
?>
Cependant j'aimerais afficher seulement les fichiers commençant par le chiffre 1, ou alors du chiffre 1 à 6 pour pouvoir les triier.

Est ce que quelqu'un pourrai modifier mon script pour que cela fonctionne ?
Je ne suis pas bon du tout en php, et incapable de faire ce code... mais j'ai pas le choix faut que l'affichage soit triier...

Merci de votre aide.

Petit nouveau ! | 8 Messages

02 août 2011, 19:50

Up ?

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

02 août 2011, 21:47

Modération :
Les "up" sont interdits sur PHPFrance.

Si tu n'as pas obtenu de réponse, c'est que trop peu de temps s'est écoulé depuis ton précédent message pour qu'un membre ait pu y répondre.

Merci de prendre le temps de lire les règlements.


Quant à ton problème, on ne modifiera pas ton script pour toi, mais l'on peut te guider vers la fonction substr() pour récupérer les premiers caractères d'une chaine (genre le nom de ton fichier) pour e tester
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 8 Messages

02 août 2011, 22:00

Ok je veux bien essayer de le faire mais connais tu un tutoriel ou une explication de cette fonction? je ne trouve pas !

Eléphanteau du PHP | 39 Messages

03 août 2011, 11:22

Si tu as besoin d'information à propos d'une fonction, je te conseils vivement d'aller sur www.php.net qui est une excellente source pour avancer rapidement.

Sinon pour ton problème, tu peux utiliser une regex(expression régulière) pour choisir se que tu veux récupérer.

Voici un tutoriel sur les expressions régulière de Grafikart : http://www.grafikart.fr/tutoriels/expre ... guliere-86
“We spend money that we do not have, on things we do not need, to impress people who do not care.”
― Will Smith

Eléphanteau du PHP | 26 Messages

03 août 2011, 11:58

opendir/readdir son des méthodes qui tendent à être obseletes, maintenant avec php5 il est plutôt recommandé de faire

Code : Tout sélectionner

<?php $dir = new DirectoryIterator("/home/XXXXX/public_html/test/directory "); foreach($dir as $directory) { echo $directory->getPathName(). "<br />"; } ?> source: http://www.lyxia.org/blog/developpement/php/manipulation-de-repertoires-en-php-735
Pour le tri tu peux mettre tous tes réulstats dans un tableau et utiliser http://php.net/manual/fr/function.sort.php

Eléphant du PHP | 171 Messages

03 août 2011, 21:46

Un sujet travaillé par AB qui pourrait t'intéresser car il correspond à ce que tu recherches et de manière très optimisé :wink:

php-avance/filesystemiterator-regexiter ... 59502.html
Le bon jugement s'apprend par l'expérience qui s'acquiert en partie par le mauvais jugement.