begin process at 2012 05 27 19:07:31
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > LISTING DES FICHIERS D'UN REPERTOIRE LETTRE PAR LETTRE

LISTING DES FICHIERS D'UN REPERTOIRE LETTRE PAR LETTRE


 Information sur la source

Note :
Aucune note
Catégorie :Fichier / Disque Niveau :Débutant Date de création :19/03/2005 Date de mise à jour :19/03/2005 17:08:29 Vu :5 435

Auteur : remington

Ecrire un message privé
Commentaire sur cette source (19)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
A la base j'ai concu ce script car je cherchai a lister toutes les images d'un repertoire puis a les afficher lettre par lettre grace a un menu.

j'avoue ke l'esthetique a été negligé mais il y a l'essentiel ;)
a vous de lui donner le style que vous desirez .

vous aurrez juste a rajouter un repertoire pour mettre les fichiers a lister
et a modifier la variable $ repertoire en fonction du nom de celui ci

certains diront sans doute que c'est nul mais j'ai cherché un code de ce genre sans rien trouver donc voile je poste le mien .

Source

  • <html>
  • <head>
  • <title>listing des fichiers d'un repertoire</title>
  • <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  • </head>
  • <body>
  • <div align="center">
  • <?php
  • // ligne a modifier en fonction du repertoire a afficher
  • $repertoire = "jaquettes";
  • //---------------------------------------------
  • $lettre = $_GET['lettre'];
  • $chiffre = $_GET['chiffre'];
  • $r = opendir("$repertoire");
  • $a = "97"; //caractere a en ascii
  • // menu ------------------------------------------------------
  • echo "<a href=\"".$_SERVER['PHP_SELF']."?chiffre=1\">0-9</a> ";
  • while ( $a <= 121 )
  • {
  • echo "<a href=\"".$_SERVER['PHP_SELF']."?lettre=".chr($a)."\">".chr($a-32)."</a> ";
  • $a = $a+1;
  • }
  • echo "<br><br>";
  • //----------------------------------------------------------
  • // listing des fichiers par lettre
  • echo ("liste des fichiers dans ce repertoire :<br>");
  • while ($fichier = readdir($r))
  • {
  • // si c'est un chiffre
  • if ( $chiffre == "1" )
  • {
  • if (is_numeric ( strtolower($fichier{0} ) ))
  • {
  • echo " <a href=\"$repertoire/$fichier\">$fichier</a><br>";
  • }
  • }
  • // si c'est une lettre
  • if ( $lettre != "" )
  • {
  • if (strtolower($fichier{0}) == $lettre)
  • {
  • $name = ucfirst("$fichier");
  • echo " <a href=\"$repertoire/$fichier\">$name</a><br>";
  • }
  • }
  • }
  • //on ferme le repertoire
  • closedir($r);
  • ?>
  • </div>
  • </body>
  • </html>
<html>
<head>
<title>listing des fichiers d'un repertoire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<div align="center">
<?php
// ligne a modifier en fonction du repertoire a afficher
$repertoire = "jaquettes";
//---------------------------------------------
$lettre = $_GET['lettre'];
$chiffre = $_GET['chiffre'];
$r = opendir("$repertoire");
$a = "97"; //caractere a en ascii

// menu ------------------------------------------------------
echo "<a href=\"".$_SERVER['PHP_SELF']."?chiffre=1\">0-9</a> ";
while ( $a <= 121 )
{
echo "<a href=\"".$_SERVER['PHP_SELF']."?lettre=".chr($a)."\">".chr($a-32)."</a> ";
$a = $a+1;
}
echo "<br><br>";
//----------------------------------------------------------

// listing des fichiers par lettre
echo ("liste des fichiers dans ce repertoire :<br>");

while ($fichier = readdir($r))
{
// si c'est un chiffre
if ( $chiffre == "1" )
{
if (is_numeric ( strtolower($fichier{0} ) )) 
{
echo " <a href=\"$repertoire/$fichier\">$fichier</a><br>";
}
}
// si c'est une lettre
if ( $lettre != "" )
{
if (strtolower($fichier{0}) == $lettre)
{
$name = ucfirst("$fichier");
echo " <a href=\"$repertoire/$fichier\">$name</a><br>";
}
}
}
//on ferme le repertoire
closedir($r);
?>
</div>
</body>
</html>

 Conclusion

il n'y normalement aucun bug enfin si vous voyez une amélioration faites moi le savoir.

merci


 Historique

19 mars 2005 17:03:16 :
voila deja j'ai ecouté le menu. mais il reste encore du travail pour rendre ce code plus propre je vais chercher et des que j'ai trouvé je remodifierai
19 mars 2005 17:08:51 :
<? remplacé par <?php

 Sources de la même categorie

SUPPRESSION AUTOMATIQUE DES FICHIERS RAW ORPHELINS APRÈS UN ... par malokaff
UPLOADER DES FICHIER DANSUN DOSSIER, SÉCURISÉ AVEC MOT DE PA... par raizzo
COMPTEUR DE VISITES SUR FICHIER par pierreSabatier
FONCTION RECURSIVE DE DOSSIERS par tefa24600
Source avec Zip CONVERSION DES UNITÉS INFORMATIQUE (O, KIO, MIO, GIO, TIO...... par genetApt151

Commentaires et avis

Commentaire de GRenard le 19/03/2005 04:41:14

... au lieu de faire pleins de echo comme ca, pourquoi pas faire un for qui affiche chacune des lettres... et liens...
remplace <? par <?php

Commentaire de LuckyLuck le 19/03/2005 10:26:02

et si tu fé des concaténations :
"<a href=\"".$_SERVER['PHP_SELF']."?lettre=c\">C</a> ";

tu peux remplacer tous tes " par des ' ;)

Commentaire de coucou747 le 19/03/2005 11:26:26 administrateur CS

comme grenard le dit si bien, les boucles peuvent êtres très utiles... la ça fait franchement moche, sans parler de :
$r = opendir("$repertoire");
ou
$name = ucfirst("$fichier");

n'oublions pas que tu utilises parfois des simples parfois des doubles, alors que tu ne les palces pas du tout au bons endroits...

Commentaire de remington le 19/03/2005 15:28:30

pourrais tu me faire une correction pour voir comment le rendre mieu que je voye exactement les erreur que j'ai faits
merci d'avance

Commentaire de GRenard le 19/03/2005 15:41:10

On te les as dit... essais de le faire toi même...

Commentaire de remington le 19/03/2005 17:05:07

modif du menu effectué apres changement ca donne ca
c deja un peu mieu hein ? ;)

echo "<a href=\"".$_SERVER['PHP_SELF']."?chiffre=1\">0-9</a> ";

while ( $a <= 121 )
{
echo "<a href=\"".$_SERVER['PHP_SELF']."?lettre=".chr($a)."\">".chr($a-32)."</a> ";
$a = $a+1;
}

Commentaire de LuckyLuck le 19/03/2005 17:21:44

ca aurait été mieux une boucle for, et ta concaténation n'est toujours pas bonne...

Commentaire de coucou747 le 19/03/2005 17:44:48 administrateur CS

pourquoi tu mets des guillemets simples pour les tablmes de hash et des doubles pour le reste...

Commentaire de remington le 19/03/2005 18:14:11

pour la boucle for je vois pas trop la difference
pour la concatenation je vois pas ce que c'est (desolé).
pour les guillemets g toujours eu des problemes lol

pour la boucle

for ($a = 97 ; $a <= 121 ; $a++)
{
echo "<a href=\"".$_SERVER['PHP_SELF']."?lettre=".chr($a)."\">".chr($a-32)."</a> ";
}

Commentaire de GRenard le 19/03/2005 19:03:49

qu'es-ce que c'est que ca...
pourquoi ne pas faire
for($i='a';$i<'z';$i++)
echo $i.strtoupper($i).'<br />';

... 10 fois plus facile...

Commentaire de coucou747 le 19/03/2005 19:10:16 administrateur CS

pour tes problèmes... mais merde, on doit toujours répéter les mêmes choses...

cherches dans les sources de grenard t'as un tuto sur les règles de codages à respecter je crois, et si tu trouves pas, ses sources t'aprendrons bcp de choses... tu peux chercher (pour les mots clés que tu ne connais pas ) sur le site de référence de php

Commentaire de remington le 19/03/2005 20:55:29

je savai pas qu'on pouvai faire ca

for($i='a';$i<'z';$i++)

merci du tuyau

Commentaire de GRenard le 19/03/2005 20:57:57

c'est inférieur ou = à z ... c pas ca g mis mais vous avez compris le principe...

Le tutorial est : http://www.phpcs.com/code.aspx?id=24870

Commentaire de ImmortalPC le 20/03/2005 17:43:55

Salut,
Moi j'aurais écrit ça comme ça:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"><head>
<meta http-equiv="Content-LANGUAGE" content="French" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="Title" content="listing des fichiers d'un repertoire" />
<meta http-equiv="Expires" content="Never" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta name="robots" content="Noindex, Nofollow" />
<meta name="GENERATOR" content="Script Edit, PHP Designer 2005" />
<title>listing des fichiers d'un repertoire</title>
<style type="text/css" media="screen">
body {
    text-align: center;
}
</style>
</head><body>
<?php
// ligne a modifier en fonction du repertoire a afficher
$repertoire = 'Images';
echo '<h1>Listing des fichiers du repertoire ',$repertoire,'</h1>';
//---------------------------------------------
if(IsSet($_GET['lettre'])){$lettre = $_GET['lettre'];}else{$lettre = NULL;}
if(IsSet($_GET['lettre'])){$chiffre = $_GET['chiffre'];}else{$chiffre = NULL;}
$r = opendir($repertoire);
$a = 97; //caractere a en ascii

// menu ------------------------------------------------------
echo '<a href="',$_SERVER['PHP_SELF'],'?chiffre=1">0-9</a>',"\n";
while ( $a <= 121 ){
    echo '<a href="',$_SERVER['PHP_SELF'],'?lettre=',chr($a),'">',chr($a-32),'</a>',"\n";
    $a++;
}
echo '<br /><br />',"\n";
//----------------------------------------------------------

// listing des fichiers par lettre
echo 'liste des fichiers dans ce repertoire :<br />';

while ($fichier = readdir($r)){
    // si c'est un chiffre
    if($chiffre == 1){
        if(is_numeric( strtolower($fichier{0}) )){
            echo '<a href="',$repertoire,'/',$fichier,'">',$fichier,'</a><br />';
        }
    }
    // si c'est une lettre
    if($lettre != ''){
        if(strtolower($fichier{0}) == $lettre){
            $name = ucfirst("$fichier");
            echo '<a href="',$repertoire,'/',$fichier,'">',$name,'</a><br>';
        }
    }
}
//on ferme le repertoire
closedir($r);
?>
</body></html>
@++

Commentaire de Tukkkko le 20/03/2005 18:23:38

C'est une autre façon de faire...

De toutes façons il y en a encore plein d'autres...

Commentaire de Ze_doctor le 05/09/2005 13:07:26

ImmortalPC, j ai utilisé ton code, la page s affiche sans problème sauf que ca ne liste rien du tout :/

Commentaire de vincseize le 07/09/2005 12:04:37

petite correction,  erreur de frappe je pense de la part de
ImortalPC le 20/03/2005 17:43:55:

remplacer: if(IsSet($_GET['lettre'])){$chiffre = $_GET['chiffre'];}else{$chiffre = NULL;}

par: if(IsSet($_GET['chiffre'])){$chiffre = $_GET['chiffre'];}else{$chiffre = NULL;}

za + les brutes

Commentaire de xmag le 01/08/2006 11:56:21

Petite idée pour perfectionner le code : ne pas afficher les lettres où il n'y a pas de fichier ;-)

Commentaire de PaTaTe le 02/06/2007 16:26:09

Personnellement avec les 2 méthodes je n'ai pas le Z qui s'affiche dans la liste des lettres. Et puis comme XMAG le spécifie, ça serait bien de pouvoir cliquer que sur les lettres qui ont un contenu (les retirer non je préfèrerais les laisser) ... Si quelqu'un peut m'aider pour tout ça, ça serait sympa ^^

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales