Edit sur index.php

Edit sur index.php - PHP - Programmation

Marsh Posté le 02-07-2007 à 10:55:08    

Bonjour
j'ai récupéré sur le net un fichier "index.php" qui permet une fois placé dans un dossier de répertorier son contenu et de l'afficher sur une page web
Ex: http://www.monsite.fr/dossier1/index.php. "Index.php" affiche donc le contenu du dossier "/dossier1/"  
 
Le seul problème est qu'il tri de façon anarchique, parfois par ordre d'arrivé sur le serveur, parfois par ordre alphabétique.
 
Je recherche donc "du code" à rajouter qui permette de trier -par ordre alphabétique d'un part
                                                                                   - par ordre d'arrivée sur le serveur d'autre part

Voilà le code php du fichier en question:

 
<?
                                                                                                             
$path="./";
$handle=opendir($path);
                                                                                                             
while (false != ($file = readdir($handle)))
                                                                                                             
/* teste si on a bien un fichier ou un répertoire réel et avec un masque sur l'extension PHP */
  if (substr($file, 0, 1) != "." && strtoupper(substr($file,-3)) != "PHP" ) {
        echo "<a href=\"$path$file\">$file</a><br>";
   
        }
                                                                                                             
?>
 
 
Merci beaucoup de votre aide  :jap:  

Reply

Marsh Posté le 02-07-2007 à 10:55:08   

Reply

Marsh Posté le 02-07-2007 à 11:00:58    

lire la doc sur opendir ( et particulierement les commentaires en bas qui proposent moultes exemples de tris de fichiers par nom)
Après par l'ordre d'arrivé tu auras également besoin de filemtime

Message cité 1 fois
Message édité par anapajari le 02-07-2007 à 11:01:17
Reply

Marsh Posté le 02-07-2007 à 11:06:12    

anapajari a écrit :

lire la doc sur opendir ( et particulierement les commentaires en bas qui proposent moultes exemples de tris de fichiers par nom)
Après par l'ordre d'arrivé tu auras également besoin de filemtime


 
Merci, je vais lire tout ça  :jap:

Reply

Marsh Posté le 02-07-2007 à 18:41:49    

j'ai fait des essais avec un bon paquet de propositions mais ça ne marche pas correctement. Pour certain, dreamweaver ne veut rien savoir, et pour d'autres le classement alphabétique n'est pas cohérent et semble être "perturbé" par les différente extensions présentes dans le dossier.
 
Je précise que je n'y connais absolument rien en programation php !
Je reviens donc à mon 1er message
 
Merci anapajari en tout cas  :)

Reply

Marsh Posté le 02-07-2007 à 20:57:38    

Code :
  1. <?php
  2.                                                      
  3. $arrayFichiers=array();
  4. $ordre=$_GET['tri'];
  5. $path='./';
  6. $handle=opendir($path);
  7.                                                                                                            
  8. while (false != ($file = readdir($handle))) {
  9.                                                                                                            
  10.  if (substr($file, 0, 1) != '.' && strtoupper(substr($file,-3)) != 'PHP' ) {
  11.        $arrayFichiers[$file]=filemtime($path.$file);
  12.         }
  13. }
  14. if($ordre == 'alpha') ksort($arrayFichiers);
  15. elseif($ordre == 'alpha2') krsort($arrayFichiers);
  16. elseif($ordre == 'modif') asort($arrayFichiers);
  17. elseif($ordre == 'modif2') arsort($arrayFichiers);
  18. else ksort($arrayFichiers);
  19.  
  20. foreach($arrayFichiers as $nom => $dateDeModification) {
  21. echo '<a href="'.$path.$nom.'">'.$nom.'</a><br />';
  22. }
  23.                                                                                                            
  24. ?>


 
Tu n'as plus qu'a taper :
 
www.monsite.com/index.php?ordre=alpha Tri alphabétique en ordre croissant
www.monsite.com/index.php?ordre=alpha2 Tri alphabétique en ordre décroissant
www.monsite.com/index.php?ordre=modif Tri par date de modification en ordre croissant (du plus vieux fichier au plus récent)
www.monsite.com/index.php?ordre=modif2 Tri par date de modification en ordre décroissant (du plus récent fichier au plus vieux)


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 02-07-2007 à 23:53:52    

anomique [:aloy]
 


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 03-07-2007 à 09:23:22    

WIIDS: case...switch t'aimes pas? Nan parce que les 50 elseif :o

Reply

Marsh Posté le 03-07-2007 à 15:38:39    

anapajari a écrit :

WIIDS: case...switch t'aimes pas? Nan parce que les 50 elseif :o


C'est plus propre mais j'ai lu que c'était plus lent

 

Et plus propre en fait, même pas sur [:fading]

 

Donc oui, j'aime pas [:ocube]

Message cité 1 fois
Message édité par WiiDS le 03-07-2007 à 15:40:13

---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 03-07-2007 à 15:49:42    

WiiDS a écrit :

C'est plus propre mais j'ai lu que c'était plus lent


lol :/
Moi j'ai lu que c'était de la branlette [:dawa] D'autant que si ça se trouve, les octets que tu rajoutes te font perdre en BP le temps gagné en micro-optimisation...
Et c'est crade puisque tu répètes le nom de la variable 5 fois (redondant), et tu perds en lisibilité (perso).

Message cité 1 fois
Message édité par theredled le 03-07-2007 à 15:51:12

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 03-07-2007 à 16:01:20    

theredled a écrit :

lol :/
Moi j'ai lu que c'était de la branlette [:dawa] D'autant que si ça se trouve, les octets que tu rajoutes te font perdre en BP le temps gagné en micro-optimisation...


YOU MADE ME LOL'D !!!
Nan mais c'est vrai que le code php est tranmis au navigateur :o donc c'est important de faire des scripts php courts pour ne pas surcharger la bande passante :o
 
Mais sur le fond et l'optimisation tu as raison... ;)

Reply

Marsh Posté le 03-07-2007 à 16:01:20   

Reply

Marsh Posté le 03-07-2007 à 16:33:48    

Ah oui merde :o
En mémoire serveur utilisée alors :o


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 03-07-2007 à 17:34:03    

OSEF, moi j'aime pas les switch case, c'est vrai que dans le fond on répète pas tout le temps $ordre mais les break; j'aime pas du tout :/
 
switch($lol) {
case "xxx":
echo $b;
break;
defaut:
echo $a;
break;
}
 
Non j'aime pas, c'est tout :o


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 03-07-2007 à 20:28:48    

WiiDS a écrit :

Code :
  1. <?php
  2.                                                      
  3. $arrayFichiers=array();
  4. $ordre=$_GET['tri'];
  5. $path='./';
  6. $handle=opendir($path);
  7.                                                                                                            
  8. while (false != ($file = readdir($handle))) {
  9.                                                                                                            
  10.  if (substr($file, 0, 1) != '.' && strtoupper(substr($file,-3)) != 'PHP' ) {
  11.        $arrayFichiers[$file]=filemtime($path.$file);
  12.         }
  13. }
  14. if($ordre == 'alpha') ksort($arrayFichiers);
  15. elseif($ordre == 'alpha2') krsort($arrayFichiers);
  16. elseif($ordre == 'modif') asort($arrayFichiers);
  17. elseif($ordre == 'modif2') arsort($arrayFichiers);
  18. else ksort($arrayFichiers);
  19.  
  20. foreach($arrayFichiers as $nom => $dateDeModification) {
  21. echo '<a href="'.$path.$nom.'">'.$nom.'</a><br />';
  22. }
  23.                                                                                                            
  24. ?>


 
Tu n'as plus qu'a taper :
 
www.monsite.com/index.php?ordre=alpha Tri alphabétique en ordre croissant
www.monsite.com/index.php?ordre=alpha2 Tri alphabétique en ordre décroissant
www.monsite.com/index.php?ordre=modif Tri par date de modification en ordre croissant (du plus vieux fichier au plus récent)
www.monsite.com/index.php?ordre=modif2 Tri par date de modification en ordre décroissant (du plus récent fichier au plus vieux)


 
 
 
ça marche impeccable en alphabétique croissant, mais inefficace pour les 3 autres tris
Merci bcp en tout cas, ça répond bien à mon pb de base  :)

Reply

Marsh Posté le 03-07-2007 à 20:35:00    

iboll a écrit :

ça marche impeccable en alphabétique croissant, mais inefficace pour les 3 autres tris
Merci bcp en tout cas, ça répond bien à mon pb de base  :)


http://www.monsite.com/index.php?tri=alpha
http://www.monsite.com/index.php?tri=alpha2
http://www.monsite.com/index.php?tri=modif
http://www.monsite.com/index.php?tri=modif2

 

Désolé, trompage, c'est pas ?ordre mais ?tri :o

 

Ca marchait pour l'ordre alphabétique car c'est automatiquement mis sur ce tri si aucun paramètre valide n'est passé ;)

Message cité 1 fois
Message édité par WiiDS le 03-07-2007 à 20:42:55

---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 03-07-2007 à 20:40:59    

WiiDS a écrit :

OSEF, moi j'aime pas les switch case, c'est vrai que dans le fond on répète pas tout le temps $ordre mais les break; j'aime pas du tout :/
 
switch($lol) {
case "xxx":
echo $b;
break;
defaut:
echo $a;
break;
}
 
Non j'aime pas, c'est tout :o


Forcément, si t'aimes pas non plus indenter :o


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 03-07-2007 à 20:43:59    

theredled a écrit :

Forcément, si t'aimes pas non plus indenter :o


Code :
  1. <?php
  2. switch($lol) {
  3.     case "xxx":
  4.         echo $b;
  5.         break;
  6.     default:
  7.         echo $a;
  8.         break;
  9. }
  10. ?>


 
Un peu mieux mais je préfère toujours mon petit if elseif, question de gouts toussa [:spamafote]


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 03-07-2007 à 20:56:49    

WiiDS a écrit :

Code :
  1. <?php
  2. switch($lol) {
  3.     case "xxx":
  4.         echo $b;
  5.         break;
  6.     default:
  7.         echo $a;
  8.         break;
  9. }
  10. ?>
 

Un peu mieux mais je préfère toujours mon petit if elseif, question de gouts toussa [:spamafote]


Tant que je dois pas passer derrière, pas de pb je suis tolérant [:cosmoschtroumpf] :o


Message édité par theredled le 03-07-2007 à 20:57:19

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 03-07-2007 à 21:00:36    

WiiDS a écrit :

http://www.monsite.com/index.php?tri=alpha
http://www.monsite.com/index.php?tri=alpha2
http://www.monsite.com/index.php?tri=modif
http://www.monsite.com/index.php?tri=modif2
 
Désolé, trompage, c'est pas ?ordre mais ?tri :o
 
Ca marchait pour l'ordre alphabétique car c'est automatiquement mis sur ce tri si aucun paramètre valide n'est passé ;)


 
 
Et ben dans ce cas, tout marche nickel, bravo et encore merci !!  ;)

Reply

Marsh Posté le 03-07-2007 à 22:04:06    

iboll a écrit :

Et ben dans ce cas, tout marche nickel, bravo et encore merci !!  ;)


Au plaisir :jap:


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 03-07-2007 à 23:46:56    

WiiDS a écrit :

Code :
  1. <?php
  2. switch($lol) {
  3.     case "xxx":
  4.         echo $b;
  5.         break;
  6.     default:
  7.         echo $a;
  8.         break;
  9. }
  10. ?>
 

Un peu mieux mais je préfère toujours mon petit if elseif, question de gouts toussa [:spamafote]


Tiens c'est marrant, j'ai les mêmes gouts. :D
J'aime pas la syntaxe du switch et la tête que ça a.
J'ai d'autres manies, par exemple, j'aime pas écrire :
if ($toto == 'toto') $toto= 'tata';
Je préfère écrire :
if ($toto == 'toto') {
    $toto= 'tata';
}
Ca prend 3 lignes, mais je préfère.

 

Surement une manie à la con. :D

Message cité 2 fois
Message édité par The-Shadow le 03-07-2007 à 23:47:23
Reply

Marsh Posté le 03-07-2007 à 23:54:25    

The-Shadow a écrit :

Tiens c'est marrant, j'ai les mêmes gouts. :D
J'aime pas la syntaxe du switch et la tête que ça a.
J'ai d'autres manies, par exemple, j'aime pas écrire :
if ($toto == 'toto') $toto= 'tata';
Je préfère écrire :
if ($toto == 'toto') {
    $toto= 'tata';
}
Ca prend 3 lignes, mais je préfère.
 
Surement une manie à la con. :D


Me dites pas que vous êtes aussi le genre de mec à écrire des trucs du genre "j'ai acheté des ".$truc."" [:le kneu]:o


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 03-07-2007 à 23:55:20    

theredled a écrit :

Me dites pas que vous êtes aussi le genre de mec à écrire des trucs du genre "j'ai acheté des ".$truc."" [:le kneu]:o


non, "j'ai acheté des ",$truc; :o

Reply

Marsh Posté le 03-07-2007 à 23:56:06    

The-Shadow a écrit :

Tiens c'est marrant, j'ai les mêmes gouts. :D
J'aime pas la syntaxe du switch et la tête que ça a.
J'ai d'autres manies, par exemple, j'aime pas écrire :
if ($toto == 'toto') $toto= 'tata';
Je préfère écrire :
if ($toto == 'toto') {
    $toto= 'tata';
}
Ca prend 3 lignes, mais je préfère.
 
Surement une manie à la con. :D


Ahhh enfin quelqu'un qui n'aime pas switch case :jap:


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 03-07-2007 à 23:56:32    

theredled a écrit :

Me dites pas que vous êtes aussi le genre de mec à écrire des trucs du genre "j'ai acheté des ".$truc."" [:le kneu]:o


echo 'j\'ai acheté des '.$trucs; [:napalm27]


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 03-07-2007 à 23:58:37    

ok :o
 
pour le truc des crochets, si c'est pour bien distinguer la condition de l'instruction, pourquoi ne pas écrire
if ($mdr)
   echo $lol;
?
 
Ou alors t'es juste un maniacodépressif des crochets :o


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 04-07-2007 à 00:00:29    

WiiDS a écrit :

echo 'j\'ai acheté des '.$trucs; [:napalm27]


Alors ça, pareil, illisible, les chaines avec plein de slashes :o et me dis pas que t'as lu que c'était plus rapide, je te croirais :o


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 04-07-2007 à 00:00:58    

WiiDS a écrit :

echo 'j\'ai acheté des '.$trucs; [:napalm27]


Faut mettre une virgule si tu veux de l'opti parfaite :o
 

theredled a écrit :

ok :o
 
pour le truc des crochets, si c'est pour bien distinguer la condition de l'instruction, pourquoi ne pas écrire
if ($mdr)
   echo $lol;
?
 
Ou alors t'es juste un maniacodépressif des crochets :o


C'est moins clair je trouve, mais attention, comme dis plus haut, c'est juste une question de gout, je ne pense pas que ça ait un impact quelquepart.  [:airforceone]  

Reply

Marsh Posté le 04-07-2007 à 00:03:43    

The-Shadow a écrit :

C'est moins clair je trouve, mais attention, comme dis plus haut, c'est juste une question de gout, je ne pense pas que ça ait un impact quelquepart.  [:airforceone]


Perso je mets 3x moins de temps à lire un code avec 3x moins de lignes/mots, en plus tu as plus de choses sous les yeux en mm tps [:airforceone]

 

Après je sais pas, ya ptet des gens qui lisent plus vite un code avec que des if, des while, et des crochets et des anti-slashes partout, je dis pas :o


Message édité par theredled le 04-07-2007 à 00:05:30

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 04-07-2007 à 14:49:04    

theredled a écrit :

Alors ça, pareil, illisible, les chaines avec plein de slashes :o et me dis pas que t'as lu que c'était plus rapide, je te croirais :o


 
Je sais parfaitement que vaut mieux utiliser " " dans ce cas mais depuis qu'on m'a dit que c'était plus rapide, le ' ' est devenu une manie :/
 

The-Shadow a écrit :

Faut mettre une virgule si tu veux de l'opti parfaite :o


On peut mettre echo 'J\'ai acheté ',$kilos,' kilos de ',$truc; ? :??:


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 04-07-2007 à 14:57:49    

WiiDS a écrit :

On peut mettre echo 'J\'ai acheté ',$kilos,' kilos de ',$truc; ? :??:


Yeah, tu gagnes facile 10 ns par page avec ça :o

 

edit : oh un avatar

Message cité 1 fois
Message édité par theredled le 04-07-2007 à 14:58:18

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 04-07-2007 à 16:42:32    

theredled a écrit :

Yeah, tu gagnes facile 10 ns par page avec ça :o
 
edit : oh un avatar


[:cerveau lent]


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed