On m'a demandé de créer un site où certains utilisateurs peuvent télécharger des documents Microsoft Word, alors que d'autres peuvent ensuite rechercher des documents téléchargés qui contiennent certains mots-clés. Le site serait assis sur un serveur Linux exécutant PHP et MySQL. J'essaie actuellement de savoir si et comment je peux gratter ce texte à partir des documents. Si quelqu'un peut suggérer un bon moyen de faire cela, il serait très apprécié.Comment puis-je graver du texte de document MS Word sur un serveur Linux?
Répondre
Voici un bon exemple en utilisant catdoc:
function catdoc_string($str)
{
// requires catdoc
// write to temp file
$tmpfname = tempnam ('/tmp','doc');
$handle = fopen($tmpfname,'w');
fwrite($handle,$a);
fclose($handle);
// run catdoc
$ret = shell_exec('catdoc -ab '.escapeshellarg($tmpfname) .' 2>&1');
// remove temp file
unlink($tmpfname);
if (preg_match('/^sh: line 1: catdoc/i',$ret)) {
return false;
}
return trim($ret);
}
function catdoc_file($fname)
{
// requires catdoc
// run catdoc
$ret = shell_exec('catdoc -ab '.escapeshellarg($fname) .' 2>&1');
if (preg_match('/^sh: line 1: catdoc/i',$ret)) {
return false;
}
return trim($ret);
}
Cool qui semble être capable de faire l'affaire. Je vais regarder dedans. Merci –
texte Grattage du nouveau format docx est trivial. Le fichier lui-même est juste un fichier zip, et si vous regardez à l'intérieur d'un, vous trouverez un tas de fichiers XML. Le texte est contenu dans word/document.xml dans ce fichier zip, et tout le texte réel entré par l'utilisateur apparaîtra dans < w: t > tags. Si vous extrayez tout le texte apparaissant dans les balises < w: t >, vous aurez éraflé le document.
Merci pour l'explication sur docx. catdoc ne fonctionne pas avec les fichiers docx, donc j'utilise un combo de cela, et un peu bash qui fait ce que vous avez trouvé ici: http://stackoverflow.com/questions/1184747/rtf-doc-docx-text- extraction-en-programme-écrit-en-c-qt –
Vous pourriez vouloir se méfier de l'utilisation de tels scripts simples pour analyser XML ... analyser XML est très facile, mais le faire avec un script bash ou regex pourrait causer des maux de tête si (pour une raison quelconque) il y a des trucs bizarres qui flottent dans ces tags w: t. – ZoFreX
- 1. Supprimer la zone de texte du document MS Word
- 2. Comment lire le texte qui est présent dans la zone de texte du document MS Word?
- 3. Création et édition de documents MS-Word sur un serveur Linux?
- 4. Utilisation de VBA pour analyser du texte dans un document MS Word
- 5. Comment trouver le nombre de blocs de texte surlignés dans un document MS Word
- 6. Coller un document MS Word dans un formulaire Web
- 7. Comment puis-je réinitialiser l'état de bouton barre d'outils MS Word sur le nouveau document de
- 8. Désinfecter le texte collé de MS-Word
- 9. Utilisez MS Word Macro pour rechercher un fichier texte
- 10. Comment graver plusieurs colonnes sur l'axe Y? (MS Chart Controls)
- 11. comment ouvrir un document Word sur le bouton de lien
- 12. Création et enregistrement de document Word sur le serveur
- 13. Java MS Word libarary
- 14. Analyser le document MS Word pour XMLfragments - C#
- 15. Télécharger et afficher un document MS Word dans Android
- 16. Comment vérifier par programme si des propriétés de document d'un document MS Word 2007 ont changé?
- 17. Document Word avec images Taille du fichier
- 18. Impression d'un document OOXML sans installation de MS Word
- 19. Ajouter un autotexte personnalisé pour MS Word
- 20. Décharger le document Word (* .doc) en texte?
- 21. Copie du document MS Word à une boîte d'entrée de page Web
- 22. Document Word imprimé sur un rapport MS Access à l'aide de l'objet OLE
- 23. Liens vers l'application ASP.NET dans le document MS Word
- 24. Comment puis-je automatiquement mettre en surbrillance et extraire du texte en couleur dans MS Word?
- 25. Visualiser/modifier un document Word en ligne?
- 26. Rendu XHTML en tant que document MS Word - En-têtes
- 27. Java sauter à la section dans le document MS Word
- 28. Convertir modèle Word à partir de MS Word 2003 à MS Word 2007
- 29. VB.NET Ouvrir un document Word
- 30. Comment extraire automatiquement un texte mis en surbrillance dans MS Word 2010 dans un nouveau fichier?
Quelles versions de Word? L'ancien format .DOC ou les nouveaux formats XML, ou les deux? L'utilisation d'une instance OpenOffice sans tête sur votre serveur serait-elle une option? –
Idéalement, il devrait être en mesure de gérer tout ce que les utilisateurs lui chuck, donc toute version de mot si possible. J'ai déjà utilisé OOo une fois dans le passé pour convertir des docs en HTML, et cela pourrait être une bonne option. Mon principal souci est que l'appeler à partir d'un script de serveur peut utiliser trop de ressources. –