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

Contribuez / Téléchargez Sources et Outils PHP Discussion :

PHP et la gestion de l'encodage- Solutions


Sujet :

Contribuez / Téléchargez Sources et Outils PHP

  1. #1
    Membre très actif
    Avatar de JPBruneau
    Homme Profil pro
    retraité
    Inscrit en
    Août 2019
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 228
    Par défaut PHP et la gestion de l'encodage- Solutions
    Je viens ouvrir le débat sur les noms de fichiers accentués

    Bonjour toutes et tous,
    Et vous chers Modo merci de me mettre dans la bonne catégorie. ...

    Je viens ouvrir le débat sur les noms de fichiers accentués tant je suis
    fatigué de répondre sur mes deux forums préférés aux moyens enfantins
    à mettre en place pour gérer Tout les problèmes d'accent dans les noms de fichiers.
    ou bases de données.

    Pour cela, je dois parler de nos débuts. le fichier DOS (.bat) pour faire un DIR
    dans un BAT, un DIR *.* /S /ON >c:\mondir.txt fait l'affaire !
    Mais justement s'il y a des noms accentués il faudra lui dire quel est
    l'encodage des répertoires par exemple en windows10 c'est 65001.
    Ainsi mon fichier BAT sera tout simplement:

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chcp 65001 > nul
    DIR *.*  /S /ON >c:\mondir.txt

    Il en va de même pour le PHP:
    L'exemple le plus typique pour vous expliquer ,comment cela marche,
    est de regarder un PHP Appelé par de l'AJAX.

    Cela mettra en évidence la confusion que vous trouverez en recherchant sur Google
    bien sur dans les forums, mais également dans les articles des "grands spécialistes".

    c'est quoi un PHP ,un programme qui prépare un texte qui sera envoyé à son destinataire,
    le visiteur , ou son HTML qui attend une réponse ,dans notre cas un echo ($reponse);
    Revenons à notre DIR, pour PHP gérant une photothèque il va devoir parcourir un répertoire
    du serveur qui contient par exemple des images de tableaux dont les noms sont accentués !
    mais comment lui dire quel en est l'encodage ? tout simplement en lui donnant de suite
    en tête du PHP un

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    header('Content-type: text/html; charset=iso-8859-1');
    ?>

    par contre lorsque le php aura terminé son travail de mise en forme
    son echo $reponse; je vais (ce qui n'est pas obligatoire mais évite bien des soucis ...)
    lui faire une page invisible ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta 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
    echo ($reponse;)
    ?>
    </body></html>
    Vous avez tout compris le header à dit au PHP en quel encodage il doit travailler, et au HTML
    qui va recevoir sa réponse en quel encodage il la recevra !
    J'ai pris UTF8 parceque le html appelant ce PHP était en UTF8 !!!

    Voila peut'étre cela vous aidera je le souhaite !

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Bonjour,

    Désolé mais tu parles de débats et tu n'évoques pas de sujet précis (quant au débat ou à une question) donc j'ai un peu du mal à comprendre.
    De plus, tu parles de l'encodage des actions (headers) mais c'est plus vicieux que ça ! Tu pourrais, si tu étais sado-maso, faire des requêtes dans un BAT (65001) qui va rechercher dans une DB en UTF-8 et qui echo en ISO 8859-1.
    Bref, les encodages c'est extrêmement compliqué (je trouve) mais je ne comprends pas exactement ta question.

    Donc si tu as des soucis parce que tu manipules divers encodages, je te conseille les fonctions mb_detect_encode() et mb_convert_encoding()

  3. #3
    Membre très actif
    Avatar de JPBruneau
    Homme Profil pro
    retraité
    Inscrit en
    Août 2019
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 228
    Par défaut
    Citation Envoyé par darkstar123456 Voir le message
    Bonjour,
    Donc si tu as des soucis parce que tu manipules divers encodages,
    Merci à toi,
    Tu n'as pas du lire le sens de mon message, mais il y a quelques années, il y avait ici un lieu ou nous pouvions expliquer un point (genre Topo)
    Seulement je ne savais pas ou poster cela qui peut aider ceux qui ont des problèmes, notamment en AJAX .
    A bientôt
    Jean-Pierre

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

Discussions similaires

  1. Gestion des permissions : meilleure solution pour déployer un war ?
    Par supermanu dans le forum Administration système
    Réponses: 0
    Dernier message: 29/07/2008, 19h15
  2. application php+mysql de gestion executable
    Par kephrem dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 03/02/2006, 09h55
  3. [POO] PHP et la gestion des classes
    Par Acti dans le forum Langage
    Réponses: 7
    Dernier message: 23/09/2005, 00h06

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