Des petites améliorations ) un script PHP ?
corentin.bc
Messages postés
383
Date d'inscription
Statut
Membre
Dernière intervention
-
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
j'ai le code suivant :
j'aimerais 3 choses :
que le script n'affiche pas le fichier .htaccess,
que le script n'affiche pas les dossiers redirections et portables,
que le script affiche les dossiers avant les fichiers.
Comment faire tout cela ?
Merci beaucoup !
Amicalement! Corentin.
j'ai le code suivant :
<?php $nb_fichier = 0; echo '<ul>'; ?> <?php if($dossier = opendir('./logiciels')) { ?> <?php while(false !== ($fichier = readdir($dossier))) { ?> <?php if($fichier != '.' && $fichier != '..' && $fichier != 'index.php') { ?> <?php $nb_fichier++; // On incrémente le compteur de 1 echo '<li><a href="./mondossier/' . $fichier . '" rel="nofollow" target="_blank">' . $fichier . '</a></li>'; } // On ferme le if (qui permet de ne pas afficher index.php, etc.) } // On termine la boucle ?> <?php echo '</ul><br />'; echo 'Il y a <strong>' . $nb_fichier .'</strong> fichier(s) dans le dossier'; closedir($dossier); } else echo 'Le dossier n\' a pas pu être ouvert'; ?>
j'aimerais 3 choses :
que le script n'affiche pas le fichier .htaccess,
que le script n'affiche pas les dossiers redirections et portables,
que le script affiche les dossiers avant les fichiers.
Comment faire tout cela ?
Merci beaucoup !
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
Amicalement! Corentin.
A voir également:
- Des petites améliorations ) un script PHP ?
- Script vidéo youtube - Guide
- Marketplace petites annonces - Guide
- Easy php - Télécharger - Divers Web & Internet
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
1 réponse
Salut,
Une solution possible serait de remplacer l'utilisation de readdir par la fonction glob qui permet de récupérer la liste des fichiers directement dans un tableau.
A partir de ce tableau de fichier, on peut effectuer deux boucles pour le parcourir, la première n'affichera que les dossiers et la seconde que les fichiers.
(Idéalement on pourrait utiliser une seule boucle en triant le tableau avec une fonction de tri personnalisée pour que les dossiers soient en premier)
Enfin on peut vérifier à chaque fois qu'on affiche un fichier ou un dossier si ce-dernier fait partie des fichiers ou dossiers qu'on ne souhaite pas afficher (tel que tu le fait actuellement pour le fichier index.php ainsi que les dossiers spéciaux . et ..).
Un début de solution :
Bonne journée,
Une solution possible serait de remplacer l'utilisation de readdir par la fonction glob qui permet de récupérer la liste des fichiers directement dans un tableau.
A partir de ce tableau de fichier, on peut effectuer deux boucles pour le parcourir, la première n'affichera que les dossiers et la seconde que les fichiers.
(Idéalement on pourrait utiliser une seule boucle en triant le tableau avec une fonction de tri personnalisée pour que les dossiers soient en premier)
Enfin on peut vérifier à chaque fois qu'on affiche un fichier ou un dossier si ce-dernier fait partie des fichiers ou dossiers qu'on ne souhaite pas afficher (tel que tu le fait actuellement pour le fichier index.php ainsi que les dossiers spéciaux . et ..).
Un début de solution :
<?php // liste des fichiers et dossiers contenu dans ./logiciel $files = glob('./logiciels/*'); // dossiers à ne pas afficher $dirExclude = array('redirections', 'portables'); // fichier à ne pas afficher $filesExclude = array('index.php', '.htaccess'); echo '<ul>'; // affichage des dossiers foreach($files as $file) { $filename = basename($file); if (is_dir($file) && !in_array($filename, $dirExclude)) { echo '<li>' . $filename . '</li>'; } } // affichage des fichiers foreach($files as $file) { $filename = basename($file); if (is_file($file) && !in_array($filename, $filesExclude)) { echo '<li>' . $filename . '</li>'; } } echo '</ul>';
Bonne journée,