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 :

Afficher une arborescence de dossier ftp


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Par défaut Afficher une arborescence de dossier ftp
    Bonjour,

    Je ne connais quasiment rien en programmation web (j'avais rapidement fais un peu de HTML, CSS il y a longtemps). En fait, je programme en langages fonctionnels (Caml, Haskell..) pour l'algorithmique, l'intelligence artificielle...

    Du coup, j'aimerai faire une site internet pour présenter des algorithmes. Comme j'ai toute une arborescence de dossiers dans lesquels j'ai mes algorithmes sous forme de fichiers .txt et des images (par exemple des fichier .png crées par les algo) j'aimerai pouvoir conserver cette arborescence sur le site.

    J'ai ouvert un serveur ftp (qui accepte PHP, MySQL et tout ce qu'il faut..) et j'y ai envoyé mes dossiers en tant que sauvegarde pour le moment (j'y accède en ftp avec mes identifiants).

    J'aimerai, si c'est possible pas trop difficilement en PHP, réaliser un bout de script qui permet simplement d'afficher l'arborescence d'un dossier spécifique du serveur ftp (je ne veux pas tout afficher depuis la racine car il y a des fichiers de l'hébergeur ou des sauvegardes que je ne veux pas publier). Par exemple dans un bandeau à gauche, PHP afficherait l'arborescence ftp et dans un cadre à droite, l'utilisateur pourrait voir le fichier texte.

    J'ai testé différentes plate-formes comme Hyla mais Hyla propose un système qui permet même d'uploader sur le site sans passer par FileZilla (ce que je ne cherche pas du tout) et nécessite un système d'utilisateurs pour voir l'arborescence.

    Voilà, j'ai conscience que ce que je demande est peut-être tout à fait irréalisable (simplement) et que je vais sûrement devoir me cogner à la main les liens hypertextes et toute l'arborescence de fichiers et ce à chaque fois que je fais une modification.

    Merci pour vos indications !

  2. #2
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    c'est assez simple ce que tu cherches à faire.

    il te faut un module menu déroulant qui parcours une arbo et qui l'affiche, c'est un truc relativement standard et tu trouveras facilement, un module qui detecte quelle page l'utilisateur veux voir, avec des liens bien construits c'est assez simple a faire (mais potentiellement délicat si on se soucie de la sécurité), et un module qui affiche le .txt, par exemple avec un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre class="algo">';
    include $lefichierTexte;
    echo '</pre>';

    bon apres tu peux convertir tes txt dans une base mysql et tu les pousses automatiquement dans un CMS... et pareil pour les images... mais pas aussi simple.

  3. #3
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    ma réponse dans une autre discussion pourrait peut-être t'aider

    http://www.developpez.net/forums/d12...e/#post6810847

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Par défaut
    Merci beaucoup pour vos réponses !
    Patrickbaras, ton script est exactement ce que je cherchais (je dirai presque, ce dont je n'osais rêver).

    Ca marche très bien : http://skynyrd777.x90x.net/

    La seule chose qui me turlupine, comment je pourrai ne pas afficher le dossier "images", le ".htaccess" et "index.php" ? Si je mets ce script dans un sous repertoire avec une redirection j'aurais toujours le dossier "images" et le fichier "index.php"..

    Merci en tout cas !

  5. #5
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    première solution (la plus économe en modification de code)

    tu déplace tt tes documents vers un sous répertoire (par exemple documents)

    /Intelligence en essaim
    devient
    /documents/Intelligence en essaim

    dans le code tu remplace
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dir_scan_html("./documents");
    de cette manière l'arbre ne commencera que dans le repertoire /documents/

    sinon voici une nouvelle version de la fonction :
    qui n'affiche pas le répertoire images (du niveau principal)
    qui n'affiche pas les fichiers commençants par un point (comme .htaccess)
    qui n'affiche pas le fichier index.php (du niveau principal)

    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
    function dir_scan_html($dir,$niveau=0,$id=0)
    {
    $html=null;
    $html_repertoires=null;
    $html_fichiers=null;
    	if ($handle = opendir($dir)) {
    		while (false !== ($entry = readdir($handle))) {
    			$id++;
    			if(is_dir($dir."/".$entry))
    			{
    				if($entry!='..' && $entry!='.')
    				{
    					 if( 
    						($dir."/".$entry != './images')
    					 )	
    					 {
    						 $html_repertoires .= str_repeat("\t",$niveau)."<div id='div_".$id."' style='border:solid 0px #00FF00;' onclick='document.getElementById(\"sub_".$id."\").style.display=\"block\"' onDblclick='document.getElementById(\"sub_".$id."\").style.display=\"none\"'>";
    						 $html_repertoires .= str_repeat("<img src='images/vide.png' border='0'>",$niveau);
    						 $html_repertoires .= "<img src='images/folder.png' border='0'>";
    						 $html_repertoires .= "".$entry."";
    						 $html_repertoires .= "";
    						 $html_repertoires .= "";
    						 $html_repertoires .= str_repeat("\t",$niveau)."</div mid='div_".$id."'>\n";
    							//echo ".".$entry."<br>";
    						 $niveau++;
    						 $html_repertoires .= str_repeat("\t",$niveau)."<div id='sub_".$id."' style='display:none;border:solid 0px #FF0000;' >\n";
    						 $html_repertoires .= dir_scan_html($dir."/".$entry,$niveau,$id);
    						 $html_repertoires .= str_repeat("\t",$niveau)."</div mid='sub_".$id."'>\n";
    						 $niveau--;
    					}
    				}				
    			}else{
    				 if( 
    					(substr ( $entry , 0, 1 ) != '.')
    					&& ($dir."/".$entry != './index.php')
    				 )	
    				 {
    					 $html_fichiers .= str_repeat("\t",$niveau)."<div id='fil_".$id."'>";
    					 $html_fichiers .= str_repeat("<img src='images/vide.png' border='0'>",$niveau);
    					 $html_fichiers .= "<img src='images/file_extension_txt.png' border='0'>";
    					 $html_fichiers .= "<a href='".$dir."/".$entry."' target='_blank'>".$entry."</a>";
    					 $html_fichiers .= "</div>\n";
    				 }
    			}
    		}
    		closedir($handle);
    		$html.=$html_repertoires;
    		$html.=$html_fichiers;
    		return $html;
    	}    
    }
     
     
    $html = dir_scan_html(".");
    echo $html;
    je te conseille la première solution , tu doit bien sur changer tes fichiers de place, mais de cette manière tu peu créer d'autres répertoire fichiers qui eux ne seront pas affichés

    exemple :
    /
    /images
    file_extension_txt.png
    folder.png
    vide.png
    index.php
    .htaccess
    /documents
    /Intelligence en essaim/....
    /autre_repertoire_visible/....
    /autre_repertoire_visible_2/....
    .

    /autre_repertoire
    document_non_visible
    /autre_repertoire2
    document_non_visible2

  6. #6
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    Citation Envoyé par Skynyrd777 Voir le message
    Ca marche très bien :
    je viens de regarder et tester les fichiers dont le nom contient des accents ne s'affiche pas
    je te conseille d'éviter l'utilisation d'accent et de caractére comme "(" ")" "=" "espace" "," "-"
    essais de faire des nom de fichiers "compatibles" tt OS , le plus sûr utiliser uniquement des minuscules , chiffres et "_"

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Par défaut
    Merci ! J'utiliserai sûrement les deux méthodes si je veux faire un index avec plusieurs liens (exemple : algorithmique, intelligence artificielle...) qui envoient vers des index de sous-dossier (deuxième méthode dans ce cas).

    Edit : Effectivement, ce sont bien les fichiers avec des accents.. dans le nom qui ne passent pas ! J'écrirai tous les noms en anglais, ça évitera ce genre d'erreur.

    En tout cas, merci beaucoup ! Ce fut une réponse très rapide et efficace !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. créer une arborescence de dossiers et de fichiers dans un archive zip
    Par khaldoune_inf dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 04/06/2007, 23h30
  2. Création d'une arborescence de dossiers
    Par guidzit dans le forum Access
    Réponses: 4
    Dernier message: 25/09/2006, 09h14
  3. Réponses: 3
    Dernier message: 28/03/2006, 10h52
  4. [FTP] afficher une image d'un FTP
    Par Dokho1000 dans le forum Langage
    Réponses: 13
    Dernier message: 01/03/2006, 15h40
  5. Récursivité dans une arborescence de dossiers...
    Par thony23 dans le forum Langage
    Réponses: 5
    Dernier message: 26/10/2005, 16h14

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