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 :

Générer un document Word à partir de PHP


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 43
    Points : 46
    Points
    46
    Par défaut Générer un document Word à partir de PHP
    Bonjour tout le monde,
    Je cherche a créer un document word à partir d'un modèle via PHP. J'ai réussi à généré le document word,mais le problème il m'affiche un seul enregistrement comme pour cette discussion 'http://www.developpez.net/forums/d1092929/php/langage/generer-document-word-partir-php/ ' . J'ai suivi toutes les recommendations mais j'ai toujours le même résultat. Qu'ai je manqué.
    Merci d'avance pour votre aide.

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant - Développeur Web/Logiciel
    Inscrit en
    Mai 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant - Développeur Web/Logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 67
    Points : 80
    Points
    80
    Par défaut
    Qu'ai je manqué
    Sans avoir le code, nous aurons du mal à t'aider

    Peux tu nous montrer ce que tu as fait jusqu'ici ?

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 43
    Points : 46
    Points
    46
    Par défaut
    ok voici mon fichier template.htm obtenu
    Code html : 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
    <html xmlns:v="urn:schemas-microsoft-com:vml"
    xmlns:o="urn:schemas-microsoft-com:office:office"
    xmlns:w="urn:schemas-microsoft-com:office:word"
    xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
    xmlns="http://www.w3.org/TR/REC-html40">
    <head>
    <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
    <meta name=ProgId content=Word.Document>
    <meta name=Generator content="Microsoft Word 14">
    <meta name=Originator content="Microsoft Word 14">
    <link rel=File-List href="template_fichiers/filelist.xml">
    <link rel=themeData href="template_fichiers/themedata.thmx">
    <link rel=colorSchemeMapping href="template_fichiers/colorschememapping.xml"></head>
    <body lang=FR-BE style='tab-interval:35.4pt'>
    <div class=WordSection1>
    <p class=MsoNormal>$no</p>
    <p class=MsoNormal>$pren</p>
    <p class=MsoNormal>$adr</p>
    <p class=MsoNormal><o:p>&nbsp;</o:p></p>
    </div>
    </body>
    </html>
    et mon fichier export.php
    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
    32
    33
     <?php
    $content_row = file_get_contents(dirname(__FILE__).'/template.htm') ;
    $nom="nom";
    $prenom="prenom";
    $adresse="adresse";
    $content_doc = '';
    for ($i=1;$i<3;$i++){
    	$content =$content_row;
    $content = str_replace('$no', $nom.''.$i, $content) ;
    $content = str_replace('$pren', $prenom, $content) ;
    $content = str_replace('$adr', $adresse, $content) ;
    $content_doc .= $content;$content=null;}
    //echo $content_doc;
     $filename="contact.doc";
     if(file_exists($filename)) { unlink($filename);  }
     touch($filename);
    // Vérifie que l’on peut écrire dans le fichier
     if (is_writable($filename)) {
      if (!$handle = fopen($filename, 'w')) {
       echo "Impossible d'ouvrir le fichier ($filename)";
       exit;
      }//echo $content_doc;
      if (fwrite($handle, $content_doc) === FALSE) {
       echo "Impossible d'écrire dans le fichier ($filename)";
       exit;
      }
      echo "<a href='$filename'>Télécharger le fichier</a>";
      fclose($handle);
     } else {
      echo "Le fichier $filename n'est pas accessible en écriture.";
     }
     
    ?>
    je voudrais qu'il m'affiche nom, prénom et adresse 2 fois ( c'est juste pour tester) au lieu de ça il ne l'affiche qu'une seule fois
    Merci d'avance

  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
    Il faut quand même noter que ce n'est pas un fichier DOC que tu fais mais un fichier HTML.
    Le script que tu nous montres n'est pas prévu pour répéter une section de code.

    Tu peux bricoler un truc comme ça :

    template.htm
    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
    <html xmlns:v="urn:schemas-microsoft-com:vml"
    xmlns:o="urn:schemas-microsoft-com:office:office"
    xmlns:w="urn:schemas-microsoft-com:office:word"
    xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
    xmlns="http://www.w3.org/TR/REC-html40">
    <head>
    <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
    <meta name=ProgId content=Word.Document>
    <meta name=Generator content="Microsoft Word 14">
    <meta name=Originator content="Microsoft Word 14">
    <link rel=File-List href="template_fichiers/filelist.xml">
    <link rel=themeData href="template_fichiers/themedata.thmx">
    <link rel=colorSchemeMapping href="template_fichiers/colorschememapping.xml"></head>
    <body lang=FR-BE style='tab-interval:35.4pt'>
    <div class=WordSection1>
    %content%
    <p class=MsoNormal><o:p>&nbsp;</o:p></p>
    </div>
    </body>
    content.htm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <p class=MsoNormal>%no%</p>
    <p class=MsoNormal>%pren%</p>
    <p class=MsoNormal>%adr%</p>
    le script php :
    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
    <?php
    $template= file_get_contents(dirname(__FILE__).'/template.htm');
    $content = file_get_contents(dirname(__FILE__).'/content.htm');
     
    $nom="nom";
    $prenom="prenom";
    $adresse="adresse";
    $output = $template;
    for ($i=1;$i<3;$i++){
    	$remplacement = str_replace(array('%no%', '%pren%', '%adr%'), array($nom, $prenom, $adresse), $content);
        $output = str_replace('%content%' , $remplacement . "\r\n%content%", $output) ;
    }
    $output = str_replace('%content%' , '', $output) ;
    header("Content-Type: application/force-download");
    header('Content-Disposition: attachment; filename="fichier.htm"');
    echo $output;
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 43
    Points : 46
    Points
    46
    Par défaut
    Merci sabotage pour ta réponse mais je n'ai pas pu télécharger le fichier et par la suite la machine a planté
    Merci pour ton aide

  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
    Je ne peux rien pour toi si ton serveur plante.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 43
    Points : 46
    Points
    46
    Par défaut
    ce que je voudrai c'est un fichier " .doc " donc j'ai changé fichier.hmt en fichier.doc cependant dans le document Word obtenu il y a l'entête de mon site qui vient avec alors qu'il ne devrait seulement y avoir le contenu de template.htm et content.htm

  8. #8
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 43
    Points : 46
    Points
    46
    Par défaut
    Merci pour ton aide j'ai fini par combiner ton script avec le mien et sa marche

  9. #9
    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
    Comme je t'ai dit, mettre .doc à un fichier HTML, ça n'en fait pas un fichier Word.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Générer un document word ou excel à partir un site PHP
    Par MarylouTe dans le forum Langage
    Réponses: 0
    Dernier message: 26/05/2014, 09h47
  2. Modifier l'entête d'un document Word à partir de PHP
    Par CarambaConcept dans le forum Langage
    Réponses: 0
    Dernier message: 30/05/2012, 14h58
  3. Générer un document Word à partir de PHP
    Par ghir_ana dans le forum Langage
    Réponses: 4
    Dernier message: 09/06/2011, 18h42
  4. [FPDF] Générer un document PDF à partir d'un modèle en Word
    Par boumacmilan dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 08/07/2010, 15h49
  5. Générer un document Word à partir d'un arbre XML
    Par NicoNGRI dans le forum ASP.NET
    Réponses: 1
    Dernier message: 31/03/2009, 13h57

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