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 :

Créer un encodage AINSI pour un fichier avec php


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Points : 38
    Points
    38
    Par défaut Créer un encodage AINSI pour un fichier avec php
    Bonjour,
    pour une association j'ai créé un formulaire et une page de réception php pour que des personnes puissent envoyer une liste d'affaires à donner.
    le form est envoyé et cré via php un fichier avec fopen (a+) et fwrite

    Tout fonctionne parfaitement, sauf qu' à la réception, le fichier xxx.ods (openoffice) n'affiche pas les accents, car en UTF-8 au lieu de AINSI.
    Je n'arrive pas à insérer un encodage dans mon php pour que le fichier soit téléchargeable en AINSI.
    DEBUT DE 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
     
    echo ($_POST['nom']);
    	$body = 
    		 'echo "<b>ATTENTION : Voici le numéro de document qui vous sera attribué=> F '.$a.'</b><br />";Le '.$date.'-; '.$today = date("Y-m-d H:i:s").';
    		 <br />Bonjour Mr ou Mme '.$nom.'<br /><span style="color:green">Merci de participer à :<br />
    		La bourse aux vêtements organisé par le CENTRE SOCIO-CULTUREL DU CANTON DE XXXX.</span>
    		 <table>
     <td style="width:150px;border:solid 1px black">Nom :</td>
    		 <td style="border:solid 1px black"> '.$nom.'</td>
    <tr>
     <td style="border:solid 1px blue">Prénom :</td>
    <td style="border:solid 1px black;width:200px;"> '.$prenom.'</td>
    </tr><tr>
     <td style="border:solid 1px orange">Adresse :</td>
    <td style="border:solid 1px black;width:200px;text-align:left;"> '.$adresse.'</td>....ETC...
    CREATION DU FICHIER .ODS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $fp=fopen("fichiers/$nom.ods", "a+");
    fwrite($fp,$body);
    $desc = iconv("ISO-8859-1", "WINDOWS-1252", $desc);<--NE FONCTIONNE PAS
    $body = mb_convert_encoding($body, "ANSI", "auto");<--NE FONCTIONNE PAS NON PLUS
    fclose($fp);
    Pouvez vous m'aider svp ?
    Par avance merci...

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce que tu fais ressemble plus à du HTML qu'a un fichier ODS.

    En dehors de ça, plutôt que de passer par des conversions, travaille directement dans le bon encodage ; verifie en particulier l'encodage des tes fichiers .php.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    @sabotage merci pour ta réponse, oui c'est du html mais c'est très bien traduit dans openoffice tableur. Pour l'encodage de mes fichiers php il est en UTF 8, et c'est normal, car le fichier php affiche à l'internaute sa liste validée sur internet avec les accents. L'affichage est bon en ligne, mais pas une fois téléchargé sur Windows qui réclame du AINSI pour afficher les accents... C'est pourquoi je voudrais que le fichier ods créé par fopen (a+) soit encodé en AINSI, car c'est celui là qu'on récupère...

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Essaie avec utf8_decode().
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Points : 38
    Points
    38
    Par défaut encodage fichier .ods en AINSI via php svp
    Bonjour,
    Il y a un problème que je n'arrive pas à résoudre seul ni avec google, j'ai une liste sous forme de tableau html qui est envoyée via php dans un dossier du serveur avec pour extention .ods et ça fonctionne, mais à l'arrivée le fichier .ods lu par windows m'édite les accents comme ça :
    é1é2é3é4é
    Si j'ouvre le même document avec le "blocnote windows" (en UTF-8) les accents sont bien édités comme ça :
    é1é2é3é4é
    Pour rétablir les accents dans OpenOffice-ods il faut alors que j'encode le fichier .txt en "AINSI" puis que je l'enregistre sous "mon_fichier.ods" en AINSI et les accents redeviennent normaux (é1é2é3é4é) sous OpenOffice4 .ods.
    J'en ai donc conclu qu'il fallait que j'encode mon fichier en ligne en AINSI via php pour pouvoir le lire directement avec OpenOffice ods une fois téléchargé sur mon pc windows.
    J'ai déjà posé cette question il y a quelques mois et avec la réponse :
    "Essaie avec utf8_decode()." je n'ai pas réussi (peut être une mauvaise syntaxe de ma part)
    Svp pouvez vous m'aider ?
    Avez vous une solution ?
    Par avance merci...
    bout du code php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $envoi = $body;
    $fp=fopen("fichiers/$nom.ods", "a+");
    fwrite($fp,$body);
    fclose($fp);
    $expediteur   = $nom;

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Montre nous ce que tu as fais avec utf8_decode()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    Bonjour @Sabotage
    Jai suivi ta réflexion et celle de Snooky68 ici http://www.developpez.net/forums/d10...ge-utf-8-ansi/
    mais n'ayant pas fait d'école (autodidact) suis pas très doué en syntaxe...
    C'est seul (+google) ou en demandant que j'apprend.
    Euh, le "echo" ici n'est pas très judicieux, mais j'ai essayé avec (genre) $encode = $body... Mais sur le net j'ai pas compris comment faire ça bien...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $envoi = $body;
    echo utf8_encode(utf8_decode());
    $fp=fopen("fichiers/$nom.ods", "a+");
    fwrite($fp,$body);
    fclose($fp);
    $expediteur   = $nom;

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si j'ai bien suivi, si c'est le contenu ($body) qui est en UTF8 et qu'il faut passer en ANSI :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fwrite($fp,utf8_decode($body));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    @Sabotage => , c'est bien la solution et la syntaxe qui me met dedans... Merci grace à toi, sujet résolu ! J'ai peu de temps en ce moment, mais il faut que je revois tout ça;. ...Génial, a +

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

Discussions similaires

  1. créer moteur de recherche pour terminaux mobile avec j2me
    Par alaa.cadabra dans le forum Java ME
    Réponses: 0
    Dernier message: 15/03/2010, 15h41
  2. Réponses: 2
    Dernier message: 31/07/2009, 21h07
  3. Réponses: 2
    Dernier message: 14/08/2007, 15h20
  4. Aide pour renommer fichiers avec .bat
    Par bobsapp dans le forum Windows
    Réponses: 6
    Dernier message: 21/03/2007, 13h11
  5. Comment créer une source DSN pour un fichier text
    Par ahouba dans le forum Access
    Réponses: 3
    Dernier message: 08/01/2007, 11h51

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