5

我正在尝试将 .doc 文件读入数据库,以便可以索引它的内容。Linux 上的 PHP 是否有一种简单的方法来读取 .doc 文件?如果做不到这一点,是否可以将 .doc 文件转换为 rtf、pdf 或其他一些易于阅读的“开放”格式?

请注意,我对 .docx 文件不感兴趣。

4

8 回答 8

7

Conor,我建议查看 OpenOffice 命令行界面/调用宏。它可以将许多文件格式转换为许多其他格式。然后你可以选择比 MS doc 更容易解析的东西。

例如,要转换为 PDF,命令行是:

/usr/lib/ooo-2.0/program/soffice.bin -norestore -nofirststart -nologo -headless -invisible   "macro:///Standard.Module1.SaveAsPDF(demo.doc)"
于 2008-09-18T15:18:24.523 回答
3

似乎有一个用于访问 Word 文档的库,但不确定如何从 PHP 访问它。我认为最好的解决方案是从 PHP调用他们的wv 命令。

于 2008-09-18T05:57:37.553 回答
2

phpLiveDocx是一个 Zend Framework 组件,可以在 Linux、Windows 和 Mac 上用 PHP 读写 DOC 和 RTF 文件。此外,您可以使用它来生成 PDF 文件,甚至可以将 PHP 中的数据合并到使用 MS Word 或 Open Office 创建的模板文件中!

请参阅项目网站:

http://www.phplivedocx.org

于 2009-05-14T07:06:27.847 回答
1

您可以使用antiwordAbiWord提取文本并将其提供给您最喜欢的全文索引器。AbiWord 可能对您的目的更有效,因为它可以转换为 RTF、PDF 和其他格式(是的,它是一个 GUI 文字处理器,但它也支持命令行使用)。

于 2008-09-18T05:53:25.647 回答
1

我在 Ubuntu 中找到了一个 unoconv 包。它在 OpenOffice 支持的所有格式之间进行转换。您应该能够在 php 中使用 exec 来运行此实用程序。

于 2009-12-24T18:53:49.260 回答
0

它不是 PHP,但有一个 doc2rtf 实用程序可供您使用。从那里您可以将 RTF 文件作为文本文档打开,编写一些字符串替换例程来删除 RTF 格式代码,并拥有一个适合索引的文本。

或者,您可以获取 OpenOffice 并打开 MS Word 文档,然后只需文件 > 另存为 > RTF。

于 2008-09-18T05:54:03.587 回答
0

DOC 文件以二进制格式存储,没有任何纯 php 编写的类来处理它们。

RTF 文件更容易解析,主要是文本,您可以使用 fopen 打开它们并阅读内容。

如果可以的话,我建议使用 RTF,因为目前还没有针对 DOC 文件的合理解决方案。

于 2008-09-18T06:00:43.960 回答
0

经过几天的搜索,这是我最好的解决方案: http ://wvware.sourceforge.net/

安装包

sudo apt-get install wv

在 PHP 中使用它:

$output = str_replace('.doc', '.txt', $filename);
shell_exec('/usr/bin/wvText ' . $filename . ' ' . $output);
$text = file_get_contents($output);
# Convert to UTF-8 if needed
if(!mb_detect_encoding($text, 'UTF-8', true))
{
    $text = utf8_encode($text);
}
unlink($output);
于 2016-03-21T13:38:26.993 回答