IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Listing FTP en PHP ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Par défaut Listing FTP en PHP ?
    Bonjour,

    Je souhaite lister une arborescence FTP sur un site, selon certaine conditions :

    - Très rapide de chargement
    - Script encastrable dans une page très légèrement (pas 200.000 fichiers)
    - Permettre dans le même encart de naviguer dans la sous arborescence et pourvoir télécharger en cliquant simplement
    - Etre assez propre, pas besoin de superflu, juste besoin du nom du fichier/dossier, et la taille, peut être la date de modification.

    Par contre, je n'ai pas besoin du tout de gestion d'upload ou de modifications, bien au contraire.

    J'ai trouvé un script léger et réactif qui s'appelle ExplorerXP, qui fait ce que je cherche MAIS dans l'arborescence locale et non distante et FTP.

    Le fichier principal est dir.php, que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    <?
    // Vous pouvez changer le chemin de départ, par default "." //
    $depart="/";
     
     
    // ----- Affiche arborescence ----- Auteur : fgauharou@yahoo.fr ------------- //
     
    require("./fonctions.php");
     
    // ------------------------------ Initialisation des variables ----------------------------------------------- //
     
     
    if(!empty($chemin))     $chemin     = stripslashes($chemin); else $chemin = $depart;
    echo $chemin;
     
     
    // ----------------------------------- Sécurité navigation -------------------------------------------------- //
     
    $chemintotal = $chemin;
     
    // ------------------------------- Récupération des fichiers et répertoires dans tableau-- //
     
     
    $handle  = @opendir($chemintotal);
    $file    = @readdir($handle);      // repertoire .
    $file    = @readdir($handle);      // repertoire ..
    $repind  = 0;
    $fileind = 0;
     
    while ($file = @readdir($handle))
    {
    	if(is_dir("$chemintotal/$file"))
    	{
    		$reptab[$repind]["nom"]           = $file;
    		$reptab[$repind]["taille"]        = filesize("$chemintotal/$file");
    		$repind++;
    	}
    	else
    	{
    		$filetab[$fileind]["nom"]         = $file;
    		$filetab[$repind]["taille"]        = filesize("$chemintotal/$file");
    		$fileind++;
    	}
    }
     
    @closedir($handle);
     
     
     
    // ============================= Affichage =================================== //
    ?>
     
    <! ----------------------- Affichage du chemin ------------------>
    <table width=50% border="0" cellspacing="0" cellpadding="0" BGCOLOR="#b0bace">
      <tr>
        <td><b><? echo " Chemin : ";?></b><?$CheminDecompose = DecomposerChemin($chemin);echo $CheminDecompose; // -- Affiche le dossier courant -- // ?>
      </td>
      </tr>
    </table>
     
    <TABLE WIDTH="650" BORDER="0" CELLPADDING="0" CELLSPACING="1" nowrap>
    <TR>
    	<TD background="/images/menu.jpg" width=35>&nbsp;</TD>
    	<TD background="/images/menu.jpg" ALIGN="center"><b><? echo "Nom"; ?></b></TD>
    	<TD background="/images/menu.jpg" width=65 ALIGN="center" COLSPAN="5"><B><? echo "Taille"; ?></B></TD>
    </TR>
    <TR><TD COLSPAN="10"><HR NOSHADE></TD></TR>
     
    <? 
    // ------ Si on clique sur dossier parent --------------- //
     
    if($chemin != ".")
    {
    	$cheminretour = ModifChemin($chemin);
    	$cheminretour = rawurlencode($cheminretour);
     
    	?>
    	<TR>
    		<TD width=35 ALIGN="center"><A HREF="./dir.php?chemin=<? echo $cheminretour; ?>"><IMG SRC="./images/back.gif" BORDER="0"></A></TD>
    		<TD ALIGN="left"  ><A HREF="./dir.php?chemin=<? echo $cheminretour; ?>">..</A></TD>
    	</TR>
    	<?
    }
     
     
    // -------------------------------------- Affichage des répertoires --------------------------------------- //
     
    for($i=0;$i<$repind;$i++)
    {
    	$nomrep      = $reptab[$i]["nom"];
    	$cheminrep   = rawurlencode($chemin."/".$nomrep);
    	$IndiceImage = $i;
    	$pair	     = $i%2;
    	?>
    	<TR>
    		<TD <? if ($pair==1) {echo "";?>BGCOLOR="#b0bace" bordercolor="#b0bace"<?} else {echo "";?>BGCOLOR="#d8dde7" bordercolor="#d8dde7"<?}?> ALIGN="center"><A HREF="./dir.php?chemin=<? echo $cheminrep; ?>"><IMG SRC="./images/dir.gif" border="0"></A></TD>
    		<TD <? if ($pair==1) {echo "";?>BGCOLOR="#b0bace" bordercolor="#b0bace"<?} else {echo "";?>BGCOLOR="#d8dde7" bordercolor="#d8dde7"<?}?> ALIGN="left" ><font color="#000099"><font face=" Verdana,Arial, Helvetica, sans-serif" size="2"><? echo $nomrep; ?></TD>
    		<TD <? if ($pair==1) {echo "";?>BGCOLOR="#b0bace" bordercolor="#b0bace"<?} else {echo "";?>BGCOLOR="#d8dde7" bordercolor="#d8dde7"<?}?> ALIGN="left" ><font color="#000099"><font face=" Verdana,Arial, Helvetica, sans-serif" size="2"></TD>
     
    	</TR>
    	<?
    }
     
    // --------------------------------------- Affichage des fichiers ----------------------------------------- //
     
    $IndiceImage++;
     
     
    for($i=0;$i<$fileind;$i++)
    	{
    	$nomfic      = $filetab[$i]["nom"];
    	$ext         = GetExtension($nomfic);
    	$ext         = strtolower($ext);
    	$icone       = GetIcone($ext);
    	$IndiceImage = $i;
    	$pair	     = $i%2;
     
    	?>
    	<TR>
    		<TD <? if ($pair==1) {echo "";?>BGCOLOR="#F2F4F7" bordercolor="#F2F4F7"<?} else {echo "";?>BGCOLOR="#EBEEF3" bordercolor="#EBEEF3"<?}?>width=35 ALIGN="center"><IMG SRC ="./images/<? echo $icone ?>"></TD>
    		<TD <? if ($pair==1) {echo "";?>BGCOLOR="#F2F4F7" bordercolor="#F2F4F7"<?} else {echo "";?>BGCOLOR="#EBEEF3" bordercolor="#EBEEF3"<?}?>ALIGN="left"  ><A HREF="<? echo $chemin."/".$nomfic; ?>"><? echo $nomfic ; ?></A></TD>
    		<TD <? if ($pair==1) {echo "";?>BGCOLOR="#F2F4F7" bordercolor="#F2F4F7"<?} else {echo "";?>BGCOLOR="#EBEEF3" bordercolor="#EBEEF3"<?}?>ALIGN="right"  ><? echo FormatTailleFichier(filesize($chemin."/".$nomfic)); ?></TD>
    	</TR>
    	<?
    	}
     
    // ------ fin du tableau ---- //
     
    ?>
    <TR><TD COLSPAN="10"><HR NOSHADE></TD></TR>
    </TABLE><BR>
     
     
    <! --------- Affiche le nombre de dossiers et de fichiers -------------- >
     
     
    <table width=400 border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td background="/images/menu.jpg"><B>
    	<? echo " Nombre de dossier(s) : ".$repind; ?> - <? echo " Nombre de fichier(s) : ".$fileind; ?></B>
    	</td>
      </tr>
    </table>
     
    </BODY>
    </HTML>
    Je souhaiterais l'adapter au listing d'un serveur FTP de type :
    ftp://log:pass@serveurFTP:21

    Pouvez vous m'aider ? J'ai beau essayer, je bloque grave.

  2. #2
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    si tu commençais pas nous montrer ce que tu as fait?
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    ftp_connect , ftp_rawlist et ftp_get devrait te permettre de faire ce que tu veux : http://fr2.php.net/manual/fr/ref.ftp.php
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Par défaut
    Citation Envoyé par grunk Voir le message
    ftp_connect , ftp_rawlist et ftp_get devrait te permettre de faire ce que tu veux : http://fr2.php.net/manual/fr/ref.ftp.php
    J'en étais arrivé aux mêmes conclusions, mais comme mes connaissances PHP ne sont que pratiques, j'ai du essayer pas loin d'une vingtaine d'adaptations pour inclure ces commandes au script ci-dessus, sans succès malheureusement...

    Une piste ?

Discussions similaires

  1. [SQL] Liste déroulante dynamique PHP only
    Par gforce dans le forum PHP & Base de données
    Réponses: 24
    Dernier message: 11/05/2006, 21h30
  2. [SQL] Problème de récupération des valeurs d'une liste multiple en php
    Par BOLARD dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 01/05/2006, 00h29
  3. [Système] Liste déroulante et PHP
    Par moonia dans le forum Langage
    Réponses: 15
    Dernier message: 28/04/2006, 09h44
  4. [PHP-JS] Liste déroulante + Javascript + Php et Mysql : Besoin d'aide
    Par vampyrx dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/03/2006, 01h40
  5. Activer le module FTP de PHP
    Par Sylver dans le forum Serveurs (Apache, IIS,...)
    Réponses: 3
    Dernier message: 06/05/2005, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo