Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1321 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Un peu d'aide pour mon script? (script de listage de fichiers)

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Un peu d'aide pour mon script? (script de listage de fichiers)

n°1303230
tarte en p​ion
Posté le 10-02-2006 à 19:31:46  profilanswer
 

Bonjour,
alors je suis novice... et j'ai besoin d'un peu d'aide pour un script que j'ai récupéré sur internet et que je suis en train d'arranger...
Alors voilà, c'est un script de listage de fichiers. Quand on clique sur le nom du fichier une fenêtre de propriétés du fichier s'ouvre et moi je voudrais que ce soit le fichier qui s'ouvre...
Vous pouvez me donner un coup de main?
 
Merci d'avance aux âmes généreuses!!!


Message édité par tarte en pion le 10-02-2006 à 19:45:17
mood
Publicité
Posté le 10-02-2006 à 19:31:46  profilanswer
 

n°1303232
tarte en p​ion
Posté le 10-02-2006 à 19:36:19  profilanswer
 

J'ai oublié de mettre mon code! désolé! Alors voilà:

Code :
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. * {font-size: 10pt;}
  5. </style>
  6. </head>
  7. <body>
  8. <?php
  9. /* racine */
  10. $BASE = "fichiers/.";
  11. /* infos à extraire */
  12. function addScheme($entry,$base,$type) {
  13.   $tab['name'] = $entry;
  14.   $tab['type'] = filetype($base."/".$entry);
  15.   $tab['date'] = filemtime($base."/".$entry);
  16.   $tab['size'] = filesize($base."/".$entry);
  17.   $tab['perms'] = fileperms($base."/".$entry);
  18.   $tab['access'] = fileatime($base."/".$entry);
  19.   $t = explode(".", $entry);
  20.   $tab['ext'] = $t[count($t)-1];
  21.   return $tab;
  22. }
  23. /* liste des dossiers */
  24. function list_dir($base, $cur, $level=0) {
  25.   global $PHP_SELF, $BASE, $order, $asc;
  26.   if ($dir = opendir($base)) {
  27.     $tab = array();
  28.     while($entry = readdir($dir)) {
  29.       if(is_dir($base."/".$entry) && !in_array($entry, array(".",".." ))) {
  30.         $tab[] = addScheme($entry, $base, 'dir');
  31.       }
  32.     }
  33.     /* tri */
  34.     usort($tab,"cmp_name" );
  35.     foreach($tab as $elem) {
  36.       $entry = $elem['name'];
  37.       /* chemin relatif à la racine */
  38.       $file = $base."/".$entry;
  39.      /* marge gauche */
  40.       for($i=1; $i<=(4*$level); $i++) {
  41.         echo "&nbsp;";
  42.       }
  43.       /* l'entrée est-elle le dossier courant */
  44.       if($file == $cur) {
  45.         echo "<img src=\"dir-open.gif\" />&nbsp;$entry<br />\n";
  46.       } else {
  47.         echo "<img src=\"dir-close.gif\" />&nbsp;<a href=\"$PHP_SELF?dir=".rawurlencode($file)."&order=$order&asc=$asc\">$entry</a><br />\n";
  48.       }
  49.       /* l'entrée est-elle dans la branche dont le dossier courant est la feuille */
  50.       if(ereg($file."/",$cur."/" )) {
  51.         list_dir($file, $cur, $level+1);
  52.       }
  53.     }
  54.     closedir($dir);
  55.   }
  56. }
  57. /* liste des fichiers */
  58. function list_file($cur) {
  59.   global $PHP_SELF, $order, $asc, $order0;
  60.   if ($dir = opendir($cur)) {
  61.     /* tableaux */
  62.     $tab_dir = array();
  63.     $tab_file = array();
  64.     /* extraction */
  65.     while($file = readdir($dir)) {
  66.       if(is_dir($cur."/".$file)) {
  67.         if(!in_array($file, array(".",".." ))) {
  68.           $tab_dir[] = addScheme($file, $cur, 'dir');
  69.         }
  70.       } else {
  71.           $tab_file[] = addScheme($file, $cur, 'file');
  72.       }
  73.     }
  74.     /* tri */
  75.     usort($tab_dir,"cmp_".$order);
  76.     usort($tab_file,"cmp_".$order);
  77. /* affichage */
  78. echo "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">";
  79. echo "<tr style=\"font-size:8pt;font-family:arial;\">
  80. <th>".(($order=='name')?(($asc=='a')?'/\\ ':'\\/ '):'')."<a href=\"$PHP_SELF?dir=".rawurlencode($cur)."&order=name&asc=$asc&order0=$order\">Nom</a></th><td>&nbsp;</td>
  81. <th>".(($order=='size')?(($asc=='a')?'/\\ ':'\\/ '):'')."<a href=\"$PHP_SELF?dir=".rawurlencode($cur)."&order=size&asc=$asc&order0=$order\">Taille</a></th><td>&nbsp;</td>
  82. <th>".(($order=='date')?(($asc=='a')?'/\\ ':'\\/ '):'')."<a href=\"$PHP_SELF?dir=".rawurlencode($cur)."&order=date&asc=$asc&order0=$order\">Dernière modification</a></th><td>&nbsp;</td>
  83. <th>".(($order=='type')?(($asc=='a')?'/\\ ':'\\/ '):'')."<a href=\"$PHP_SELF?dir=".rawurlencode($cur)."&order=type&asc=$asc&order0=$order\">Type</a></th><td>&nbsp;</td>
  84. <th>".(($order=='ext')?(($asc=='a')?'/\\ ':'\\/ '):'')."<a href=\"$PHP_SELF?dir=".rawurlencode($cur)."&order=ext&asc=$asc&order0=$order\">Extention</a></th><td>&nbsp;</td>
  85. <th>".(($order=='perms')?(($asc=='a')?'/\\ ':'\\/ '):'')."<a href=\"$PHP_SELF?dir=".rawurlencode($cur)."&order=perms&asc=$asc&order0=$order\">Permissions</a></th><td>&nbsp;</td>
  86. <th>".(($order=='access')?(($asc=='a')?'/\\ ':'\\/ '):'')."<a href=\"$PHP_SELF?dir=".rawurlencode($cur)."&order=access&asc=$asc&order0=$order\">Dernier accès</a></th></tr>";
  87.     foreach($tab_dir as $elem) {
  88.       echo "<tr><td><a href=\"javascript:void(0);\"
  89.   onClick=\"window.open('properties.php3?type=dir&entry=".rawurlencode($cur."/".$elem['name'])."','Proprietes','menubar=no,toolbar=no,location=no,status=no,scrollbars=no,resizable=yes,width=400,height=300');\">
  90.   <img src=\"dir-close.gif\" border=\"0\" />&nbsp;".$elem['name']."</a></td><td>&nbsp;</td>
  91.   <td>&nbsp;</td><td>&nbsp;</td>
  92.   <td>".date("d/m/Y H:i:s", $elem['date'])."</td><td>&nbsp;</td>
  93.   <td>".assocType($elem['type'])."</td><td>&nbsp;</td>
  94.   <td>&nbsp;</td><td>&nbsp;</td>
  95.   <td>".$elem['perms']."</td><td>&nbsp;</td>
  96.   <td>&nbsp;</td></tr>\n";
  97. }
  98. foreach($tab_file as $elem) {
  99.       echo "<tr><td><a href=\"javascript:void(0);\"
  100.   onClick=\"window.open('properties.php3?type=file&entry=".rawurlencode($cur."/".$elem['name'])."','Proprietes','menubar=no,toolbar=no,location=no,status=no,scrollbars=no,resizable=yes,width=400,height=300');\">
  101.   <img src=\"file-none.gif\" border=\"0\" />&nbsp;".$elem['name']."</a></td><td>&nbsp;</td>
  102.   <td align=\"right\">".formatSize($elem['size'])."</td><td>&nbsp;</td>
  103.   <td>".date("d/m/Y H:i:s", $elem['date'])."</td><td>&nbsp;</td>
  104.   <td>".assocType($elem['type'])."</td><td>&nbsp;</td>
  105.   <td>".assocExt($elem['ext'])."</td><td>&nbsp;</td>
  106.   <td>".$elem['perms']."</td><td>&nbsp;</td>
  107.   <td>".date("d/m/Y", $elem['access'])."</td></tr>\n";
  108. }
  109. echo "</table>";
  110.     closedir($dir);
  111.   }
  112. }
  113. /* formatage de la taille */
  114. function formatSize($s) {
  115.   /* unités */
  116.   $u = array('octets','Ko','Mo','Go','To');
  117.   /* compteur de passages dans la boucle */
  118.   $i = 0;
  119.   /* nombre à afficher */
  120.   $m = 0;
  121.   /* division par 1024 */
  122.   while($s >= 1) {
  123.     $m = $s;
  124.     $s /= 1024;
  125.     $i++;
  126.   }
  127.   if(!$i) $i=1;
  128.   $d = explode(".",$m);
  129.   /* s'il y a des décimales */
  130.   if($d[0] != $m) {
  131.     $m = number_format($m, 2, ",", " " );
  132.   }
  133.   return $m." ".$u[$i-1];
  134. }
  135. /* formatage du type */
  136. function assocType($type) {
  137.   /* tableau de conversion */
  138.   $t = array(
  139.     'fifo' => "file",
  140.     'char' => "fichier spécial en mode caractère",
  141.     'dir' => "dossier",
  142.     'block' => "fichier spécial en mode bloc",
  143.     'link' => "lien symbolique",
  144.     'file' => "fichier",
  145.     'unknown' => "inconnu"
  146.   );
  147.   return $t[$type];
  148. }
  149. /* description de l'extention */
  150. function assocExt($ext) {
  151.   $e = array(
  152.     '' => "inconnu",
  153.     'doc' => "Microsoft Word",
  154.     'xls' => "Microsoft Excel",
  155.     'ppt' => "Microsoft Power Point",
  156.     'pdf' => "Adobe Acrobat",
  157.     'zip' => "Archive WinZip",
  158.     'txt' => "Document texte",
  159.     'gif' => "Image GIF",
  160.     'jpg' => "Image JPEG",
  161.     'png' => "Image PNG",
  162.     'php' => "Script PHP",
  163.     'php3' => "Script PHP",
  164.     'htm' => "Page web",
  165.     'html' => "Page web",
  166.     'css' => "Feuille de style",
  167.     'js' => "JavaScript"
  168.   );
  169.   if(in_array($ext, array_keys($e))) {
  170.     return $e[$ext];
  171.   } else {
  172.     return $e[''];
  173.   }
  174. }
  175. function cmp_name($a,$b) {
  176.     global $asc;
  177.     if ($a['name'] == $b['name']) return 0;
  178.     if($asc == 'a') {
  179.         return ($a['name'] < $b['name']) ? -1 : 1;
  180.     } else {
  181.         return ($a['name'] > $b['name']) ? -1 : 1;
  182.     }
  183. }
  184. function cmp_size($a,$b) {
  185.     global $asc;
  186.     if ($a['size'] == $b['size']) return cmp_name($a,$b);
  187.     if($asc == 'a') {
  188.         return ($a['size'] < $b['size']) ? -1 : 1;
  189.     } else {
  190.         return ($a['size'] > $b['size']) ? -1 : 1;
  191.     }
  192. }
  193. function cmp_date($a,$b) {
  194.     global $asc;
  195.     if ($a['date'] == $b['date']) return cmp_name($a,$b);
  196.     if($asc == 'a') {
  197.         return ($a['date'] < $b['date']) ? -1 : 1;
  198.     } else {
  199.         return ($a['date'] > $b['date']) ? -1 : 1;
  200.     }
  201. }
  202. function cmp_access($a,$b) {
  203.     global $asc;
  204.     if ($a['access'] == $b['access']) return cmp_name($a,$b);
  205.     if($asc == 'a') {
  206.         return ($a['access'] < $b['access']) ? -1 : 1;
  207.     } else {
  208.         return ($a['access'] > $b['access']) ? -1 : 1;
  209.     }
  210. }
  211. function cmp_perms($a,$b) {
  212.     global $asc;
  213.     if ($a['perms'] == $b['perms']) return cmp_name($a,$b);
  214.     if($asc == 'a') {
  215.         return ($a['perms'] < $b['perms']) ? -1 : 1;
  216.     } else {
  217.         return ($a['perms'] > $b['perms']) ? -1 : 1;
  218.     }
  219. }
  220. function cmp_type($a,$b) {
  221.     global $asc;
  222.     if ($a['type'] == $b['type']) return cmp_name($a,$b);
  223.     if($asc == 'a') {
  224.         return ($a['type'] < $b['type']) ? -1 : 1;
  225.     } else {
  226.         return ($a['type'] > $b['type']) ? -1 : 1;
  227.     }
  228. }
  229. function cmp_ext($a,$b) {
  230.     global $asc;
  231.     if ($a['ext'] == $b['ext']) return cmp_name($a,$b);
  232.     if($asc == 'a') {
  233.         return ($a['ext'] < $b['ext']) ? -1 : 1;
  234.     } else {
  235.         return ($a['ext'] > $b['ext']) ? -1 : 1;
  236.     }
  237. }
  238. ?>
  239. <table border="1" cellspacing="0" cellpadding="10" bordercolor="gray">
  240. <tr valign="top"><td>
  241. <!-- liste des fichiers -->
  242. <?php
  243. /* répertoire initial à lister */
  244. if(!$dir) {
  245.   $dir = $BASE;
  246. }
  247. list_file(rawurldecode($dir));
  248. ?>
  249. </td></tr>
  250. </table>
  251. </body>
  252. </html>

n°1303252
Absyn7he
Posté le 10-02-2006 à 20:26:30  profilanswer
 

Je viens de créer un script PHP concu pour ca:
 
Clide
 
Fonctions :
 
- Remplace la page Apache de base par un template personnalisable
- Player intégré pour les vidéos, les mp3 et les images
- Highlight du PHP dans le player valide xHTML 1.1
- Gestion des Exifs
- Module d'administration
- Possibilité de créer des comptes pour uploader
- Possibilité de ne pas afficher des fichiers ou des répertoires
- Modifications & Intégration très simple du design
- URLs semi réécrite pour meilleur visualisation et meilleur référencement sur les moteurs de recherche
- Création d'avatar dynamique automatique via fichier dynamic.php
- Possibilité de créer des liens vers un autre FTP grâce au fichier generator.php (lire le readme)
- xHTML 1.1 & CSS valid
- etc ...

n°1303256
tarte en p​ion
Posté le 10-02-2006 à 20:38:02  profilanswer
 

Ton Clide il est super! Mais heu en fait le truc c'est en fait que je suis en train de faire un accès restreint pour mettre à disposition des fichiers à des personnes précises (un accès par personne) donc voilà... je crois que ça m'aide pas trop dans ce contexte...

n°1303259
Absyn7he
Posté le 10-02-2006 à 20:39:48  profilanswer
 

Un accés restreint par adresse ip, hum ? une idée à creuser.
Ferai peut être ca demain :)


Message édité par Absyn7he le 10-02-2006 à 20:46:45
n°1303264
tarte en p​ion
Posté le 10-02-2006 à 20:46:28  profilanswer
 

lol moi je pensais à qq chose de plus simple!!! un dossier nomdelapersonne/ ds lequel la personne en question va chercher ses fichiers... et un script qui envoie la personne ds son dossier quand elle tape son pseudo... enfin bon... mais tu peux peut-être me donner un coup de main? ça serait sympa... ça doit pas être trop compliqué!!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Un peu d'aide pour mon script? (script de listage de fichiers)

 

Sujets relatifs
Aide pour petit projet en Cpeut on inclure des fichiers .h dans d'autes fichiers .h ???
[Java J2EE Servlet] récupérer des fichiers inclus dans un war[PHP] script de login
De l'aide sur NS SVP!!!![Sql] Besoin d'aide pour une requête ( simple pourtant ... ) [résolu]
cherche petit script[UML] Diagramme de classe (aide) ?
[BATCH] Lister les fichiers d'un dossieraide pour formuler une requete sql-ça y est presque!!-
Plus de sujets relatifs à : Un peu d'aide pour mon script? (script de listage de fichiers)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR