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 :

Affichage de l'arabe avec PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Par défaut Affichage de l'arabe avec PHP
    Bonjour
    mon code source php les cracteres arabe;et voilà le message qui etait aficher:

    ***Le document n'a pas pu être enregistré, car l'encodage sélectionné ne peut encoder tous les caractères unicode du document. Si vous n'êtes pas sûr de l'encodage à utiliser, essayez UTF-8 ou UTF-16.***

    remarque: je travail sous debian

  2. #2
    Membre émérite Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Par défaut
    Bonjour,
    Peux-tu mieux expliquer le problème?
    C'est dans ton éditeur de texte que le problème se pose? Si oui, il doit y avoir une option quelque part concernant l'encodage des caractère, et comme le dit le message il faut passer en utf8.

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Par défaut explication
    oui,si j'ai ajouter des caracteres arabes et si j'ai fais la sauvgarde il me demande de travail avec le codage utf-8 la chose que je connu pas
    donc pouvez vous m'aider?

  4. #4
    Membre confirmé Avatar de fadex
    Inscrit en
    Septembre 2005
    Messages
    223
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Septembre 2005
    Messages : 223
    Par défaut
    salut chikha labas


    ajouter ca ca va marcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-6" />
    Exemple:

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-6" />
    <title>Untitled Document</title>
    </head>
     
    <body>
    <?php
     
    $var="حب الخير "; // (hob alkhayr) un texte en arab qui ne saffiche pas ici question d'encodage.
     
    echo $var;
    ?>
     
    </body>
    </html>

  5. #5
    Membre éclairé Avatar de The Nux
    Profil pro
    Inscrit en
    Février 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 79
    Par défaut
    Pour faire vite, dans un fichier texte (un code source PHP est un fichier texte), l'éditeur nous montre des lettres mais il stocke des nombres sur le disque dur (souvenez vous, le disque dur est une suite de 0 et de 1, c'est donc des nombres en binaire et pas des lettres). Il lui faut donc une table de correspondance entre les lettres et les nombres. Le format utilisé pour les nombres (l'octet) permet d'avoir 256 lettres distinctes, ce qui est trop peu pour couvrir tout les alphabets de la terre. Par conséquent, il existe plusieurs tables de correspondances, appellées charsets (ou "character set", ou encore "jeu de caractère"). Il en existe pour tout les alphabets en fait. Il est donc impossible d'avoir plusieurs alphabets dans le même document, et de plus il faut spécifier le charset utilisé dans chaque document. Je dis que c'est impossible, mais ce n'est plus vrai. C'était impossible jusqu'à l'apparition d'unicode (et de UTF-8) qui utilise un format différent pour le stockage des caractères. De ce fait, tout les alphabets peuvent être exprimé avec le même charset car il offre des milliers de possibilités de caractères.

    Dans ton cas particulier, tu utilises probablement gedit, qui permet d'enregistrer dans la plupart des charsets connu, dont l'utf-8 (ou l'iso-8859-6 qui est le charset arabe, mais je te conseille plutôt d'utiliser l'utf-8, c'est un charset d'avenir). Cherches dans les options quand tu fais "enregistrer sous", c'est quelquepart.

    Si tu encodes ta page en utf-8 (ou un autre charset, quel qu'il soit d'ailleurs), il faut que tu le dises au navigateur, comme l'a expliqué fadex. Pour une page en utf-8 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    Comme tu programmes en PHP, il y a de fortes chances que tu utilises mysql. Il faut que tu choisisse un collation qui correspond quand tu créés tes tables. La collation c'est des règles que mysql applique quand tu va faire des recherches, par exemple si tu cherches "vélo" et qu'il trouve "velo", il va savoir que "é" et "e" c'est presque pareil, donc il va dire que vélo == velo. Bref, ça aide pour les recherches (c'est un exemple).
    De plus, il ne faut pas oublier de dire à mysql que tu utilises utf-8. Dès que tu es connecté, tu dois executer la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("SET NAMES utf8");
    Et euh voila je crois que j'ai fait le tour...

    C'est un peu hors sujet, mais sur phpclasses il y a un developpeur qui cherche à implémenter la langue arabe en PHP, et il a déjà fait des classes intéressantes. Voici sa page http://www.phpclasses.org/browse/author/189864.html

  6. #6
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Par défaut pourquoi?
    merci pour tous qui m'aidais;mais si j'ajoute la ligne:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    pourquoi j'ecris avec les lettres arabes avec des codes;je veux ecrire des lettres en arabes directement car si je doit ecrire une page par exemple en arabes donc je suis obligé de connaitre tous les code des lettres arabes !c'est defficile non?!
    et merci d'abord

Discussions similaires

  1. [MySQL] Affichage d'image blob avec PHP
    Par minichips dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 17/03/2014, 16h44
  2. probleme d'affichage d'une table avec php
    Par K.aoutar dans le forum Langage
    Réponses: 6
    Dernier message: 01/09/2010, 17h09
  3. affichage de text arabe en php
    Par Jcpan dans le forum Langage
    Réponses: 2
    Dernier message: 12/02/2010, 11h13
  4. [ZF 1.7] l'affichage des caractére arabe avec tmx dans zf
    Par ghamrired dans le forum Zend Framework
    Réponses: 4
    Dernier message: 20/01/2009, 17h30
  5. Réponses: 9
    Dernier message: 08/02/2008, 16h17

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