Lire un document Word en PHP (sans COM)

Le
mathieu_erminio
Bonjour

J'aimerais lire un document Word dans un script PHP. Ce dernier est
hébergé dans un serveur Apache sous Linux, donc je ne peux utiliser
les fonctions COM de PHP.
Pour être exact, je cherche à lire des parties spécifiques du document
(par exemple un n° de commande ou une référence de document). L'idéal
serai que je puisse lire les valeurs de signet (sans COM)

Merci pour votre aide!!!

Mat
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Marcel
Le #602511
"Mat" news:
J'aimerais lire un document Word dans un script PHP. Ce dernier est
hébergé dans un serveur Apache sous Linux, donc je ne peux utiliser
les fonctions COM de PHP.


salut,

http://wvware.sf.net
permet de transformer un .doc en .html et d'autres formats

Marcel

Stephane
Le #602508
"Mat" a écrit
Bonjour

J'aimerais lire un document Word dans un script PHP. Ce dernier est
hébergé dans un serveur Apache sous Linux, donc je ne peux utiliser
les fonctions COM de PHP.
Pour être exact, je cherche à lire des parties spécifiques du document
(par exemple un n° de commande ou une référence de document). L'idéal
serai que je puisse lire les valeurs de signet (sans COM...)

Merci pour votre aide!!!

Mat


Salut,

J'avais trouvé une fonction pour lire les fichiers word.
Comme je suis gentil, la voilà:


// ------------------------------------------------------------------------- //
// Enregistrer un fichier '.doc' en '.txt' //
// ------------------------------------------------------------------------- //
// Auteur: Sémhur // Web: //
// ------------------------------------------------------------------------- //

/*
Cette fonction enregistre le contenu textuel d'un document '.doc' dans un
fichier '.txt'. Pratique pour effectuer une recherche en texte intégral, le
fichier '.txt' étant beaucoup plus léger, ou pour rendre lisible un document
'.doc' à quelqu'un qui n'aurait pas Word d'installé.
Fonctionne pour Word 97, 2000 et 2002
*/

// Entrer ici le fichier à transformer :
echo liredoc("document.doc");

// *****************************************************************************
// Définition de la fonction "liredoc", qui stocke le texte d'un fichier ".doc"
// (Word 97, 2002 ou 2002 uniquement) dans un fichier ".doc.txt"
// *****************************************************************************

function liredoc($fichier) {

// Cette chaine se trouve juste avant le premier caractère lisible de tout
// document word
$debut_binaire = "00d9000000";
// Pareil pour la fin
$fin_binaire = "0000";

$chaine = $chaine_ascii = "";

// Ouverture du document word en mode binaire
$fp = fopen($fichier,"rb");

while (!feof($fp)) {

$chaine = fread($fp,filesize($fichier));

// Codage du fichier en mode hexadécimal
$chaine = bin2hex($chaine);

// Enlève tous les caractères illisibles du début du fichier
$debut_chaine = strpos($chaine,$debut_binaire)+10;
$chaine = substr($chaine,$debut_chaine,filesize($fichier));

// Pareil pour la fin
$fin_chaine = strpos($chaine,$fin_binaire);
$chaine = substr($chaine,0,$fin_chaine);

// Codage de la chaine hexa en texte ascii :
for ($i=0;$i<strlen($chaine);$i+=2) {

// On prend les deux caractères hexa...
$car=substr($chaine,$i,2);

// On enlève ou remplace certains indésirables...
if ($car!="00") {
if ($car!="0d") {

// On code les hexa en décimal, puis en ascii
$car=hexdec($car);
$car=chr($car);

} else $car = "<BR>";
} else $car = "";

$chaine_ascii.=$car;
}
}

fclose($fp);

// Enregistrement dans un fichier ".doc.txt"
$fichier_txt = str_replace(".doc",".doc.txt",$fichier);

$fp = fopen($fichier_txt,"w+");
fwrite($fp,$chaine_ascii);
fclose($fp);

// Sert uniquement pour afficher le résultat pendant les tests. A enlever.
return $chaine_ascii;

}






Moustique
La souplesse d'esprit permet de s'adapter dans toutes circonstances.

www.velo-passion.com pour les fans de vélo
http://www.lapassade.ch pour les fans de théâtre
http://www.lorimier.com/expo02 pour les nostalgiques d'un super événement

Poster une réponse
Anonyme