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 :

ENCODAGE pour parcourir des répertoires du serveur et en local Windows10 [Encodage]


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut ENCODAGE pour parcourir des répertoires du serveur et en local Windows10
    Bonjour,
    je cherches à parcourir des répertoires du serveur OU EN TEST EN LOCAL Windows10,
    j'utilises
    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
     
    <?php  
    header('Content-type: text/html; charset=UTF-8'); 
    ?>
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name=viewport content="width=device-width, initial-scale=1">
    <!--[if IE]>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <![endif]-->
    </head><body>
    <?PHP
    $chemin = "C:/jpbhtml/1 web laurence-simon/albums2/11_dessin/";
    $repertoire = opendir($chemin);
    $liste = array();
    unset($liste);
    while($element = readdir($repertoire)) { $liste[] = $element; }
    natsort($liste);
    $liste = array_values($liste);
    $nombre = count($liste);
     
     
    for ($i=1; $i<$nombre; $i++)
     {
      echo "ligne ".$i." ==".$liste[$i]." <br />";
     }
    echo "OK";
    ?>
    </body></html>
    Résultat sur le site tout est parfait,
    en local les caractéres accentués son éronés !
    Une idée ?
    Merci d'avance
    Dernière modification par Invité ; 05/07/2018 à 13h34.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Chez moi, avec ton code, les caractères accentués s'affichent très bien
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour Foxy

    J'ai constaté le même problème.

    Par contre, avec le charset iso-8859-15, ça fonctionne correctement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php  
    header('Content-type: text/html; charset=iso-8859-15'); 
    ?>
    <!DOCTYPE html>
    <html lang="fr">
    <head>
        <meta charset="iso-8859-15" />
    Ce qui m'étonne d'autant plus, puisqu'il semble qu'en interne, les applications Windows utilisent UTF-16...

    Internally, Windows applications use the UTF-16 implementation of Unicode.
    Mais ça n'a peut-être pas de rapport direct.
    (En mettant UTF-16, j'obtiens des caractères/idéogrammes chinois !)


    [EDIT] J'ai trouvé la parade, en restant en UTF-8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      echo "ligne ".$i." ==".utf8_encode($liste[$i])." <br />";

    Cela dit, remplace ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        <meta charset="utf-8" />
    Et ton code se simplifie en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $chemin = "......................";
    $repertoire = opendir($chemin);
    $liste = array();
    while($element = readdir($repertoire)) { $liste[] = $element; }
    natsort($liste);
    $liste = array_values($liste);
     
    foreach($liste as $i => $val)
    {
      echo "ligne ".($i+1)." == ".utf8_encode($val)." <br />";
    }
    echo "OK";
    ?>

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Celira Voir le message
    Chez moi, avec ton code, les caractères accentués s'affichent très bien
    Merci à toi l'Amie, le probléme est en local !!
    J'explique plus bas

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour Foxy

    Par contre, avec le charset iso-8859-15, ça fonctionne correctement.
    Merci l'Ami, probléme plus compliqué car il me faut agir sur PHP ET HTML !
    cela donnes selon que tu est sur le serveur ou en local

    En local
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" />
    Et sur un serveur en général
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />

    donc par exemple
    Code php : 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
     
    <?php  
    header('Content-type: text/html; charset=65001'); 
    /* ou UTF-8*/
    ?>
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" />
    <!-- OU meta http-equiv="Content-Type" content="text/html; charset=UTF-8" / -->
    <meta name=viewport content="width=device-width, initial-scale=1">
    <!--[if IE]>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <![endif]-->
    </head><body>
    <?PHP
    $chemin = "C:/jpbhtml/1 web laurence-simon/albums2/11_dessin/";
    $repertoire = opendir($chemin);
    $liste = array();
    unset($liste);
    while($element = readdir($repertoire)) { $liste[] = $element; }
    natsort($liste);
    $liste = array_values($liste);
    $nombre = count($liste);
     
     
    for ($i=1; $i<$nombre; $i++)
     {
      echo "ligne ".$i." ==".$liste[$i]." <br />";
     }
    echo "OK";
    ?>
    </body></html>
    Hop this Help [cligne]

  6. #6
    Invité
    Invité(e)
    Par défaut
    Depuis HTML5, on écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        <meta charset="utf-8" />
    Et il me semble avoir donné la solution... en local ou serveur distant !

    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
    <?php
    header('Content-type:text/html; charset=UTF-8');	// encodage UTF-8
    ?>
    <!DOCTYPE html>
    <html lang="fr">
    <head>
        <meta charset="utf-8" />
    </head>
    <body>
     
    <?php
    $chemin = "......................";
    $repertoire = opendir($chemin);
    $liste = array();
    while($element = readdir($repertoire)) { $liste[] = $element; }
    natsort($liste);
    $liste = array_values($liste);
     
    foreach($liste as $i => $val)
    {
      echo "ligne ".($i+1)." == ".utf8_encode($val)." <br />";
    }
    echo "OK";
    ?>
     
    </body>
    </html>
    N.B.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chemin = "C:/jpbhtml/1 web laurence-simon/albums2/11_dessin/";
    Ca, c'est uniquement en local !

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

Discussions similaires

  1. Souci d'encodage pour générer des XML
    Par oneTime dans le forum Langage
    Réponses: 2
    Dernier message: 10/10/2008, 12h32
  2. Réponses: 11
    Dernier message: 30/06/2008, 13h15
  3. [Prototype] Utiliser Json pour envoyer des données au serveur
    Par GandalfZeGrey dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 14/02/2008, 17h16
  4. Bouton pour parcourir les répertoires et lire un fichier?
    Par mamid1706 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 05/08/2007, 15h39
  5. Réponses: 2
    Dernier message: 29/08/2006, 13h59

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