LISTING DES FICHIERS D'UN REPERTOIRE LETTRE PAR LETTRE

cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 - 19 mars 2005 à 04:41
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 - 2 juin 2007 à 16:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/30197-listing-des-fichiers-d-un-repertoire-lettre-par-lettre

cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
2 juin 2007 à 16:26
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 ^^
cs_xmag Messages postés 23 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 11 juin 2007
1 août 2006 à 11:56
Petite idée pour perfectionner le code : ne pas afficher les lettres où il n'y a pas de fichier ;-)
vincseize Messages postés 113 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 28 mars 2010
7 sept. 2005 à 12:04
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
Ze_doctor Messages postés 6 Date d'inscription jeudi 19 février 2004 Statut Membre Dernière intervention 7 septembre 2005
5 sept. 2005 à 13:07
ImmortalPC, j ai utilisé ton code, la page s affiche sans problème sauf que ca ne liste rien du tout :/
Tukkkko Messages postés 29 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 29 janvier 2007
20 mars 2005 à 18:23
C'est une autre façon de faire...

De toutes façons il y en a encore plein d'autres...
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
20 mars 2005 à 17:43
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>
<?php
// ligne a modifier en fonction du repertoire a afficher
$repertoire = 'Images';
echo 'Listing des fichiers du repertoire ',$repertoire,'
';
//---------------------------------------------
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 '[',$_SERVER['PHP_SELF'],'?chiffre=1 0-9]',"\n";
while ( $a <= 121 ){
echo '[',$_SERVER['PHP_SELF'],'?lettre=',chr($a),' ',chr($a-32),']',"\n";
$a++;
}
echo '

',"\n";
//----------------------------------------------------------

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

while ($fichier = readdir($r)){
// si c'est un chiffre
if($chiffre == 1){
if(is_numeric( strtolower($fichier{0}) )){
echo '[',$repertoire,'/',$fichier,' ',$fichier,']
';
}
}
// si c'est une lettre
if($lettre != ''){
if(strtolower($fichier{0}) == $lettre){
$name = ucfirst("$fichier");
echo '[',$repertoire,'/',$fichier,' ',$name,']
';
}
}
}
//on ferme le repertoire
closedir($r);
?>
</html>
@++
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
19 mars 2005 à 20: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
cs_remington Messages postés 19 Date d'inscription samedi 8 février 2003 Statut Membre Dernière intervention 10 avril 2005
19 mars 2005 à 20:55
je savai pas qu'on pouvai faire ca

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

merci du tuyau
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 mars 2005 à 19:10
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
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
19 mars 2005 à 19:03
qu'es-ce que c'est que ca...
pourquoi ne pas faire
for($i='a';$i<'z';$i++)
echo $i.strtoupper($i).'
';

... 10 fois plus facile...
cs_remington Messages postés 19 Date d'inscription samedi 8 février 2003 Statut Membre Dernière intervention 10 avril 2005
19 mars 2005 à 18:14
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 "".chr($a-32)." ";
}
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 mars 2005 à 17:44
pourquoi tu mets des guillemets simples pour les tablmes de hash et des doubles pour le reste...
cs_LuckyLuck Messages postés 59 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 5 juillet 2005
19 mars 2005 à 17:21
ca aurait été mieux une boucle for, et ta concaténation n'est toujours pas bonne...
cs_remington Messages postés 19 Date d'inscription samedi 8 février 2003 Statut Membre Dernière intervention 10 avril 2005
19 mars 2005 à 17:05
modif du menu effectué apres changement ca donne ca
c deja un peu mieu hein ? ;)

echo "0-9 ";

while ( $a <= 121 )
{
echo "".chr($a-32)." ";
$a = $a+1;
}
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
19 mars 2005 à 15:41
On te les as dit... essais de le faire toi même...
cs_remington Messages postés 19 Date d'inscription samedi 8 février 2003 Statut Membre Dernière intervention 10 avril 2005
19 mars 2005 à 15:28
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
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 mars 2005 à 11:26
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...
cs_LuckyLuck Messages postés 59 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 5 juillet 2005
19 mars 2005 à 10:26
et si tu fé des concaténations :
"C ";

tu peux remplacer tous tes " par des ' ;)
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
19 mars 2005 à 04:41
... au lieu de faire pleins de echo comme ca, pourquoi pas faire un for qui affiche chacune des lettres... et liens...
remplace <? par <?php
Rejoignez-nous