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 les fichiers d'un dossier


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Points : 15
    Points
    15
    Par défaut Lister les fichiers d'un dossier
    Bonsoir,

    je veux lister les fichiers et dossiers d'un répertoire, mais le problème le nom des fichiers sont en arabe

    J'ai déjà inclut ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    dans le header, et j'ai essayé la fonction mais ça marche pas j'ai toujours à l'affichage des "???????"

    Merci pour votre aide

  2. #2
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Lister le contenu d'un répertoire:
    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
     
    <?php
     if ($handle = opendir('.')) {
       while (false !== ($file = readdir($handle)))
          {
              if ($file != "." && $file != "..")
    	  {
              	$thelist .= '<a href="'.$file.'">'.$file.'</a>';
              }
           }
      closedir($handle);
      }
    ?>
    <P>List of files:</p>
    <P><?=$thelist?></p>
    autrement si tu est avec une base mysql elle doit aussi être configuré en utf-8
    ou dans le code php en suppoosant que con represent la connection à la base de donnée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $conn->query('SET NAMES utf8');

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par jabbounet Voir le message
    Lister le contenu d'un répertoire:
    [code]
    <?php
    if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle)))
    {
    if ($file != "." && $file != "..")
    ............
    Mon problème ce n'est pas l'affichage, et j'ai pas de connextion à la base de donnée.

    par exemple : readdir($dir) me retourne des "?????" car le $dir que je l'envoie est en arabe !!!!!!!!!!

  4. #4
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    tu peux regarder du coté de mb_detect_encoding/mb_convert_encoding pour trouver l'encodage des chaines que tu récupère.
    http://www.php.net/manual/en/functio...t-encoding.php
    et aussi
    http://php.net/manual/fr/function.mb...t-encoding.php

    et eventuellement jouer avec setlocale.

  5. #5
    Membre éprouvé 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
    Points : 1 103
    Points
    1 103
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    header ('Content-type: text/html; charset=utf-8');
     if ($handle = opendir('.')) {
       while (false !== ($file = readdir($handle)))
          {
              if ($file != "." && $file != "..")
    	  {
     ....
    ?>
    <P>List of files:</p>
    <P><?=$thelist?></p>

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par jabbounet Voir le message
    tu peux regarder du coté de mb_detect_encoding/mb_convert_encoding pour trouver l'encodage des chaines que tu récupère.
    http://www.php.net/manual/en/functio...t-encoding.php
    et aussi
    http://php.net/manual/fr/function.mb...t-encoding.php

    et eventuellement jouer avec setlocale.
    j'ai utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocale(LC_ALL, 'ar.UTF-8');
    en espérant qu'il reconnaîtra les nom de dossiers....en arabe, même ceux avec des é ç à .... ne sont pas reconnue

  7. #7
    Membre éprouvé 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
    Points : 1 103
    Points
    1 103
    Par défaut
    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
    <?php
     header ('Content-type: text/html; charset=utf-8');
     $thelist="";
     if ($handle = opendir('./test_dir/')) {
       while (false !== ($file = readdir($handle)))
          {
              if ($file != "." && $file != "..")
    	  {
              	$thelist .= '<a href="'.$file.'">'.$file.'</a><br/>';
              }
           }
      closedir($handle);
      }
    ?>
    <P>List of files:</p>
    <P><?php echo $thelist?></p>
    donne bien:
    éçàéنصبالعربية
    عربية
    Images attachées Images attachées  

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par patrickbaras Voir le message
    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
    <?php
     header ('Content-type: text/html; charset=utf-8');
     $thelist="";
     if ($handle = opendir('./test_dir/')) {
       while (false !== ($file = readdir($handle)))
          {
              if ($file != "." && $file != "..")
    	  {
              	$thelist .= '<a href="'.$file.'">'.$file.'</a><br/>';
              }
           }
      closedir($handle);
      }
    ?>
    <P>List of files:</p>
    <P><?php echo $thelist?></p>
    donne bien:
    éçàéنصبالعربية
    عربية
    ça marche pas chez moi, peut être parce que je suis sur windows !!

  9. #9
    Membre éprouvé 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
    Points : 1 103
    Points
    1 103
    Par défaut
    a-tu bien sauvegardé ton fichier php encodé en UTF-8 sans BOM?

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par patrickbaras Voir le message
    a-tu bien sauvegardé ton fichier php encodé en UTF-8 sans BOM?
    Bien sur c sous l'onglet format sur Notepad

  11. #11
    Membre éprouvé 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
    Points : 1 103
    Points
    1 103
    Par défaut
    vérifie aussi que le < de <?php soit bien le tout premier caractére de ton fichier, pas d'espace n'y de retour a la ligne avant ce caractére
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
     header ('Content-type: text/html; charset=utf-8');

  12. #12
    Membre éprouvé 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
    Points : 1 103
    Points
    1 103
    Par défaut
    utilise aussi CTRL+F5 pour rafraîchir la page.

  13. #13
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par patrickbaras Voir le message
    utilise aussi CTRL+F5 pour rafraîchir la page.
    j'ai tout vérifié et même résultat qu'avant !!
    Voilà mon code
    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
    <?php
    header ('Content-type: text/html; charset=utf-8');
    function getDirectoryFilesList($directory) 
    {
            //open directory
            $dir = opendir ("./");
            $results= array();
     
            //get all specified files  
            while (false !== ($file = readdir($dir))) { 
                    if (strpos($file, '.php',1)||strpos($file, '.html',1) ) { 
                         $results[] = $file; 
                    } 
            }
     
            return $results;
    }   
    ?>

  14. #14
    Membre éprouvé 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
    Points : 1 103
    Points
    1 103
    Par défaut
    et en changent dans l'affichage du browser (sans faire de rafraîchissement)l'encodage des caractères tu devrais pouvoir faire apparaître les caractères arabes.

  15. #15
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par patrickbaras Voir le message
    et en changent dans l'affichage du browser (sans faire de rafraîchissement)l'encodage des caractères tu devrais pouvoir faire apparaître les caractères arabes.
    Je crois pas que c ça la solution, parseque j'arrive afficher du texte arabe avec echo; avoir le nom du fichier c ça le problème, peut être que je dois changer l'encodage de wampserver en utf8 ou de windows même !!

  16. #16
    Membre régulier Avatar de moogli
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 58
    Points : 102
    Points
    102
    Par défaut
    salut,

    as tu testé cette réponse (avec l'extension mb) ?
    Citation Envoyé par jabbounet Voir le message
    tu peux regarder du coté de mb_detect_encoding/mb_convert_encoding pour trouver l'encodage des chaines que tu récupère.
    http://www.php.net/manual/en/functio...t-encoding.php
    et aussi
    http://php.net/manual/fr/function.mb...t-encoding.php

    et eventuellement jouer avec setlocale.
    le problème vient du fait que Windows n'utilise pas l'utf-8 comme charset, donc le parcourt du système de fichier ne renvoie pas des chaines au format utf-8 (et je ne pense pas que php façon une quelconque conversion sans que la demande lui en soit faite).

    @+

  17. #17
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 130
    Points : 76
    Points
    76

Discussions similaires

  1. Lister les fichiers d'un dossier
    Par Mom's dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 20/11/2006, 08h32
  2. [PC] Lister les fichiers d'un dossier
    Par toto_in_th_sky dans le forum Cobol
    Réponses: 2
    Dernier message: 11/09/2006, 17h44
  3. Réponses: 13
    Dernier message: 24/08/2006, 13h05
  4. Lister les fichiers d'un dossier par page
    Par bwatex dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 17/08/2006, 19h09
  5. Réponses: 2
    Dernier message: 24/05/2006, 19h29

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