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 :

Lister le contenu d'un répertoire


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Lister le contenu d'un répertoire
    Bonjour a tous


    Voila j'ai tester le script qu'a données patrickbaras il fonctionne par contre plusieur ,notamment le fait que les sous dossier on du mal a s'ouvrir lorsqu'il ya des vidéo,caracter speciaux genre (",+,etc...") ou plus simplement lorsque on la énormément de fichier avec des sous dossier , je post l'integraliter de mon code si defois vous pourriez avoir la gentillesse de me dire ou je fait des erreur et comment regler ce soucis d'ouvertur de dossier et l'optimisation du code afin que tout cela soit mieux coder .

    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
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Accueil</title>
    <link href="Css/accueil.css" rel="stylesheet" type="text/css">
    <link href href="css/style.css" type="text/css" />;
    </head>
     
    <body>
    <article>
    <h1>
    <?php
    session_start();
    //Si la variable pseudo n'est pas vide alors on affiche le pseudo du membre:
    if (!empty($_SESSION['pseudo']))
    {
    echo 'Bienvenue'.'&nbsp'.$_SESSION['pseudo'];
    }
    else //Sinon on demande de charger les variable sessions :
    {
    	 echo 'Le pseudo ne peut s\'afficher';
    }
    ?>
    </h1>
    <section>
    <div id="arbo">
    <?php
    require 'dbpdo.php';
    $req=$pdo->prepare( 'SELECT pseudo,url FROM membre WHERE pseudo =? ');
    $req->execute(array($_SESSION['pseudo']));
    //Début de traitement du dossier Client avec la varibale SESSION
    while ($donnees = $req->fetch())
    {
    require 'exploreur.php'; 	
    }
    //Fin de Traitement,bien a refermer l'instruction avec $req->closeCursor();
    $req->closeCursor();
    ?>
    </div>
    </section>
    <div id="retour">
    <?php $ma_page = 'index.php';?>
      <a href="<?php echo $ma_page; ?>">Deconnexion</a>
      </div>
    </article>
    </body>
    </html>
    Merci a vous en tout cas

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 42
    Points : 43
    Points
    43
    Par défaut
    Le code que tu as posté n'a rien à voir avec le listage du contenu d'un dossier.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    bonjour

    Voila Mon projet dans les grandes lignes :

    => Construction d'un espace membre en P.D.O
    => Affichage du contenu du membre avec le script de patrickbaras de façons sécuriser .

    l'arborescence est afficher pour chaque membre sans soucis mais certains de mes fichiers ne s'ouvre pas du tout ,je pense que c’est du au nom de fichiers avec accent d’ailleurs patrickbaras en parle dans le sujet il me semble ,j’aimerais savoir si il est possible de régler ce petit désagrément . Cependant j'aimerai savoir si le code est correct ou pas du tout ,si il y a une façons plus correct d’appeler exploreur.php de façons a travailler sur cette méthode la .

    J'ai effectuer un test hors espace membre le souci est le même , patrickbaras dit aussi dans le sujet : " N'utiliser que des nommage de fichier compatible tout OS," savoir si une modification éventuelle est possible pour régler cela .

    J’espère avoir été plus explicite quand a la description de mon projet et au souci rencontre . je vous joint mes deux codes de façons a mieux comprendre

    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
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Accueil</title>
    <link href="Css/accueil.css" rel="stylesheet" type="text/css">
    <link href href="css/style.css" type="text/css" />;
    </head>
     
    <body>
    <article>
    <h1>
    <?php
    session_start();
    //Si la variable pseudo n'est pas vide alors on affiche le pseudo du membre:
    if (!empty($_SESSION['pseudo']))
    {
    echo 'Bienvenue'.'&nbsp'.$_SESSION['pseudo'];
    }
    else //Sinon on demande de charger les variable sessions :
    {
    	 echo 'Le pseudo ne peut s\'afficher';
    }
    ?>
    </h1>
    <section>
    <div id="arbo">
    <?php
    require 'dbpdo.php';
    $req=$pdo->prepare( 'SELECT pseudo,url FROM membre WHERE pseudo =? ');
    $req->execute(array($_SESSION['pseudo']));
    //Début de traitement du dossier Client avec la varibale SESSION
    while ($donnees = $req->fetch())
    {
    require 'exploreur.php'; 	
    }
    //Fin de Traitement,bien a refermer l'instruction avec $req->closeCursor();
    $req->closeCursor();
    ?>
    </div>
    </section>
    <div id="retour">
    <?php $ma_page = 'index.php';?>
      <a href="<?php echo $ma_page; ?>">Deconnexion</a>
      </div>
    </article>
    </body>
    </html>
    J'appelle le script de l’arborescence avec require 'exploreur.php' ligne 35

    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
    <?php 
    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!='.')
    				{
    				 $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='img/vide.png' border='0'>",$niveau);
    				 $html_repertoires .= "<img src='img/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{
    				 $html_fichiers .= str_repeat("\t",$niveau)."<div id='fil_".$id."'>";
    				 $html_fichiers .= str_repeat("<img src='img/vide.png' border='0'>",$niveau);
    				 $html_fichiers .= "<img src='img/file_extension_txt.png' border='0'>";
    				 $html_fichiers .= "<a href='".$dir."/".$entry."' target='_blank'>".$entry."</a>";
    				 $html_fichiers .= "</div>\n";
    					//echo " ".$entry."<br>";
    			}
    		}
    		closedir($handle);
    		$html.=$html_repertoires;
    		$html.=$html_fichiers;
    		return $html;
    	}    
    }
    $html = dir_scan_html($donnees['url']);
    echo $html;
    ?>
    Mon projet dans les grandes lignes :

    => Construction d'un espace membre en P.D.O
    => Affichage du contenu du membre avec le script de patrickbaras de façons sécuriser .

    l'arborescence est afficher pour chaque membre sans soucis mais certains de mes fichiers ne s'ouvre pas du tout ,je pense que c’est du au nom de fichiers avec accent d’ailleurs patrickbaras en parle dans le sujet il me semble ,j’aimerais savoir si il est possible de régler ce petit désagrément . Cependant j'aimerai savoir si le code est correct ou pas du tout ,si il y a une façons plus correct d’appeler exploreur.php de façons a travailler sur cette méthode la .

    J'ai effectuer un test hors espace membre le souci est le même , patrickbaras dit aussi dans le sujet : " N'utiliser que des nommage de fichier compatible tout OS," savoir si une modification éventuelle est possible pour régler cela .

    J’espère avoir été plus explicite quand a la description de mon projet et au souci rencontre .

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 42
    Points : 43
    Points
    43
    Par défaut
    Honnêtement, pour moi c'est vite vu : je me chargerai de convertir les caractères accentués et de ponctuations afin de générer des noms de fichiers propres n'utilisant que la table ASCII-US (à faire au moment de l'upload et de la sauvegarde).

    C'est la solution qui me semble vraiment la plus propre et la plus robuste.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    c’est a dire ?

  6. #6
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Utiliser des noms de fichiers qui ne contiennent que des caractères minuscules sans accents, chiffres et "_".

    Utiliser tout autre caractère dans une arborescence et c'est la plaie assurée (la preuve) dès que tu veux faire quoi que ce soit (niveau portabilité c'est 0, etc...)
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/01/2008, 02h53
  2. Lister le contenu d'un répertoire présent dans le classpath
    Par kaptainflam dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 28/08/2007, 16h08
  3. Réponses: 5
    Dernier message: 30/08/2006, 18h23
  4. Lister le contenu d'un répertoire
    Par rob_57 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/10/2005, 19h16
  5. Lister le contenu d'un répertoire distant
    Par dody dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 17h23

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