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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Besoin d'aide pour un exploreur de dossier FTP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Besoin d'aide pour un exploreur de dossier FTP

n°242198
Hornet
Posté le 09-11-2002 à 13:59:10  profilanswer
 

Salut tout le monde :)
 
Voila j'ai vu ça sur un site : http://membres.lycos.fr/elmuchacho/?path=.
 
Et j'aimerais trouver la même interface de naviguation des dossiers (avec icône etc...).
 
Si quelqu'un pouvais m'expliquer comment faire sachant que je débute en php :/
Ca m'aiderais énormément ;)
 
Merci d'avance !


Message édité par Hornet le 09-11-2002 à 14:00:53
mood
Publicité
Posté le 09-11-2002 à 13:59:10  profilanswer
 

n°242499
kalex
Posté le 10-11-2002 à 03:32:07  profilanswer
 

D'abord, il faut que tu saches qu'Apache est trés bien capable de lister le contenu des répertoires.
 
Mais j'avais un peu de temps ; j'ai fait un petit code du genre de celui qui doit faire tourner le site que tu donnes en exemple. Comme tu dis être débutant j'ai mi beaucoup de commentaires.
 
Le nom du répertoire est transmis, comme sur le site, par une variable ($patch) dans l'url :

Code :
  1. if ($dir = @opendir($patch)) { // D'abord, on ouvre le répertoire uniquement s'il existe.
  2.         while($file = readdir($dir)) { // Liste le contenu du répertoire autant de fois qu'il le faut.
  3.                 if(is_dir("$patch/$file" )) echo "[DIR]"; // Si le fichier est un répertoire on affiche [DIR] (ou une image, une icone...).
  4.                 else { // Si ce n'est pas un répertoire :
  5.                         $ext = ereg_replace(".*\.(.*)", "\\1", "$file" ); // On place l'extension du fichier dans $ext.
  6.                         switch($ext){ // On regarde ce que contiens $ext.
  7.                                 case 'jpeg': echo '[JPG]'; break; // Si $ext contien 'jpeg' on affiche [JPG].
  8.                                 case 'jpg' : echo '[JPG]'; break;
  9.                                 case 'png' : echo '[PNG]'; break;
  10.                                 case 'html': echo '[HTM]'; break;
  11.                                 default    : echo '[FIC]'; // par défaut on affiche [FIC].
  12.                         }
  13.                         $size = ' ('.round((filesize("$patch/$file" ) / 1024), 1).' ko)'; /* Ici on obtient la taille du fichier avec filesize, on divise par 1024 pour obtenir la taille en Ko et on arrondi avec round. Puis on met des parenthèses autour du résultat, et on place le tout dans la variable $size (en une ligne !).*/
  14.                 }
  15.                 echo " <a href='/&patch=$patch/$file'>$file</a>$size<br>\n"; /* Enfin, on affiche le lien amenant vers le fichier, suivit de $size pour afficher la taille.*/
  16.         }
  17.         closedir($dir); // Ferme le répertoire.
  18. } else echo "Ce répertoire n'existe pas"; // En cas d'erreur.


 
Ça devrait afficher quelque chose du genre :

Code :
  1. [DIR] .
  2. [DIR] ..
  3. [DIR] .xvpics
  4. [PNG] html.2.png (58.8 ko)
  5. [PNG] html.png (1.2 ko)
  6. [FIC] html.xcf (5.3 ko)
  7. [PNG] pdf.png (0.4 ko)
  8. [PNG] txt.png (0.6 ko)


 
En espérant que ça te serves.
a+


Message édité par kalex le 10-11-2002 à 03:40:29
n°242528
Hornet
Posté le 10-11-2002 à 10:55:38  profilanswer
 

Je vais essayer de suite, je te tiens au jus ;)
 
Merci ! :jap:

n°242619
Hornet
Posté le 10-11-2002 à 14:04:46  profilanswer
 

Ce fichier $patch, je dois le renommer avec quelle extension ?

n°242657
kalex
Posté le 10-11-2002 à 15:19:32  profilanswer
 

Non. Un fichier (peu importe le nom) doit contenir le code que je t'ai donné, et avoir pour extension ".php".
$patch c'est la variable qui est transmise dans l'url. Admettons que tu mettes le code dans un fichier "dir.php", que tu le places à la racine de ton site, tu y accéderas par http://localhost/dir.php?patch=. .
$patch contiendra "." (un point), c'est à dire le répertoire courant (ici, la racine de ton site).
 
Tien, je modifie les liens pour qu'ils pointent vers dir.php :

Code :
  1. if ($dir = @opendir($patch)) {
  2.             while($file = readdir($dir)) {
  3.                       if(is_dir("$patch/$file" )) echo "[DIR]";
  4.                       else {
  5.                                 $ext = ereg_replace(".*\.(.*)", "\\1", "$file" );
  6.        
  7.                                 switch($ext){
  8.                                           case 'jpeg': echo '[JPG]'; break;
  9.                                           case 'jpg' : echo '[JPG]'; break;
  10.                                           case 'png' : echo '[PNG]'; break;
  11.                                           case 'html': echo '[HTM]'; break;
  12.                                           default    : echo '[FIC]';
  13.                                 }
  14.                                 $size = ' ('.round((filesize("$patch/$file" ) / 1024), 1).' ko)';
  15.                       }
  16.                       echo " <a href='/dir.php?patch=$patch/$file'>$file</a>$size<br>\n";// Le lien pointe maintenant sur dir.php à la racine de ton site.
  17.             }
  18.             closedir($dir);
  19. } else echo "Ce répertoire n'existe pas";


Message édité par kalex le 10-11-2002 à 15:21:13
n°257635
tomilou
It's not a bug it's a feature
Posté le 30-11-2002 à 02:22:08  profilanswer
 

pas mal comme petit script, mais j'ai du changer la ligne ci-dessous pour que les liens vers les fichiers fonctionnent
 
echo " <a href='./$file'>$file</a>$size<br>\n";
 
en tout cas merci pour ça il est vraiment bien ...


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

  [PHP] Besoin d'aide pour un exploreur de dossier FTP

 

Sujets relatifs
Besoin d'aide pour un compteur html[PHP] Probleme avec MySql: Erreur que je n'arrive pas à résoudre
[PHP] Cherchez l'erreur. 1 INSERT se passe bien mais n'enregistre rienTarification pour un site en PHP
[PHP] Besoin d'aide pour effectuer une boucle...Accéder à des prog (liste+infos) sur un AS400 via un accès FTP ???
[Linux] aide sur rexec 
Plus de sujets relatifs à : [PHP] Besoin d'aide pour un exploreur de dossier FTP


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