Aller au contenu

Lire un fichier word en PHP


Sujets conseillés

Posté

Bonjour à tous

Pour un projet php/sql il me faudrait mettre en place un formulaire d'upload permettant à un utilisateur d'envoyer un fichier word. Le contenu de celui devra ensuite être enregistré dans une BDD pour pouvoir ensuite l'afficher sur le site.

Il faut donc que je comprenne comment accéder en php au contenu d'un fichier word.

Est-il possible de faire ceci en php?

Et si oui, de conserver la mise en forme au moins en ce qui concerne le hierarchies, le gras l'italique et les sauts de lignes?

Merci de vos lumières !

Posté

Salut,

pourquoi n'utilises tu pas "TinyMCE"

A la place de ton upload, tu fais un textaera, tu installes tiny.

Ensuite ton visiteur qui voudra ajouter son texte, n'aura qu'a faire un copier depuis word via tinyMCE

Et tu obtiendras le résultat désiré

Posté (modifié)

Salut, oui c'est une bonne idée que je proposerai si je ne peux pas réaliser ce qu'on me demande.

Mais le cahier des charges qu'on m'impose implique d'ouvrir un fichier word en php après upload. J'ai vu quelques trucs à ce sujet mais je ne suis arrivé à rien pour l'instant (si ce n'est à ouvrir le logiciel word avec une commande php...)

Modifié par nyl auster
Posté

C'est possible avec les composants COM de PHP, mais pour cela, il faut que le serveur soit un serveur windows et que word soit installé sur le serveur. A une exception, si le document word est au format docx (le nouveau format généré par word 2007), il suffit de dézipper le fichier (oui le .docx est en fait un zip), puis de parser les fichiers XML (le x de docx).

Autre solution, word peut enregistrer au format HTML, mais, word génèrera un code des plus horrible, donc comme solution c'est pas génial.

Posté (modifié)

Merci de ta réponse. En gros, faire ça en php c'est la galère. L'option proposée par Lorem_ipsum me parait encore la plus raisonnable. Le coup du xml était intéressant mais vu qu'il ne concerne que la dernière version de word...

Modifié par nyl auster
Posté
Le coup du xml était intéressant mais vu qu'il ne concerne que la dernière version de word...

Et Openoffice, c'est aussi un fichier zipper et si tu dézippes, miracle, des fichiers xml.

Le traitement d'un fichier word est laborieux à réaliser pour un résultat pas toujours à la hauteur des attentes. Après qu'est ce qui motivait ton client à vouloir procéder de cette manière? pour un site internet ou pour un intranet?

Posté

Ah intéressant de savoir qu'open office fonctionne sur le même principe.

C'est un site internet; je ne fais que citer le cahier de charge qu'on m'a transmis. Disons que dans le cadre de leur projet (on m'a demandé un minimum de discrétion sur sa description) c'est effectivement ce qui serait le plus simple et intuitif pour le client.

Merci de tes précisions, ça m'est très utile :-)

Posté

Hello,

dans les paquets Debian je vois au moins l'utilitaire "catdoc" qui extrait le texte d'un document Word (mais très probablement sans le moindre formatage). Ou encore d'utiliser OpenOffice pour la faire conversion... après tout, ce doit être faisable. Non ?

Edit : sous Debian il y a aussi "docvert" :

docvert-openoffice.org - Docvert is a web application which takes word processor files (typically .doc) and converts them to OpenDocument and clean HTML.

Le site officiel : http://holloway.co.nz/docvert/

Posté

Oui, j'ai déjà approché catdoc pour faire un moteur de recherche, et en effet, il ne ressort que du texte non formaté.

La problématique pour traiter un .doc via php, c'est qu'il faut appeler une appli externe via exec(), sur du mutualisé c'est donc exclus

Posté

Je sais pas si c'est du mutualisé, mais je voulais juste le souligner, c'est un détail qui a son importance

Posté

Merci pour ces pistes, je regarderai ça plus en profondeur demain. Pour le serveur, il s'agit très surement d'un dédié (mais je n'ai pas pensé à poser la question).

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...