关于数据库:在Linux上获取PHP以读取.doc文件

关于数据库:在Linux上获取PHP以读取.doc文件

Getting PHP to read .doc files on Linux

我正在尝试将.doc文件读入数据库,以便可以为其内容编制索引。 Linux上的PHP是否有一种简单的方法来读取.doc文件? 是否无法将.doc文件转换为rtf,pdf或其他易于阅读的"开放"格式?

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


康纳,我建议您看一下OpenOffice命令行界面/调用宏。它可以将许多文件格式转换为许多其他格式。然后,您可以选择比MS doc更可解析的内容。

例如,要转换为PDF,请使用以下命令行:

1
/usr/lib/ooo-2.0/program/soffice.bin -norestore -nofirststart -nologo -headless -invisible  "macro:///Standard.Module1.SaveAsPDF(demo.doc)"

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


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

请参阅项目网站:

http://www.phplivedocx.org


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


您可以使用反词或AbiWord提取文本并将其提供给您喜欢的全文索引器。 AbiWord可能会更有效地实现您的目的,因为它可以转换为RTF,PDF和其他格式(是的,它是GUI文字处理器,但它也支持命令行用法)。


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

安装套件

1
sudo apt-get install wv

在PHP中使用它:

1
2
3
4
5
6
7
8
9
$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);

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

RTF文件更容易解析,因为大多数文本都是文本,您可以使用fopen打开它们并阅读内容。

如果可以的话,我建议您使用RTF,因为对于DOC文件确实还没有完善的解决方案。


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

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


推荐阅读

    更新文件命令linux?

    更新文件命令linux?,工作,系统,地址,信息,时间,命令,目录,基础,标准,网络,lin

    linux下读取文件命令?

    linux下读取文件命令?,系统,工作,地址,数字,图片,信息,网络,命令,文件,一致,l

    linux操作数据库命令?

    linux操作数据库命令?,地址,服务,系统,密码,数据库,工具,名字,首页,命令,参

    linux文件全选命令?

    linux文件全选命令?,电脑,系统,环境,代码,平台,服务,快捷键,文件,命令,权限,l

    linux浏览文件类命令?

    linux浏览文件类命令?,系统,信息,数据,情况,命令,标准,时间,文件,概念,管理,

    linux打包文件夹命令?

    linux打包文件夹命令?,系统,工具,管理,图片,文件,命令,位置,软件,目录,格式,l

    linux重名名文件命令?

    linux重名名文件命令?,图片,名称,名字,文件,命令,位置,代码,软件,系统,文件

    linux的建立文件命令?

    linux的建立文件命令?,名称,系统,时间,名字,命令,文件夹,位置,密码,不了,文

    linux将文件备份命令?

    linux将文件备份命令?,系统,密码,设备,软件,通讯,较大,认证,服务,数据,文件,L

    linux扩展文件命令?

    linux扩展文件命令?,工作,地址,系统,信息,命令,目录,管理,情况,文件,标准,Lin

    linux命令新增文件夹?

    linux命令新增文件夹?,系统,名字,首次,名称,新增,文件,命令,文件夹,地址,密

    linux推送文件命令?

    linux推送文件命令?,地址,系统,情况,工作,命令,文件,电脑,密码,信息,目录,Lin

    linux文件替换命令行?

    linux文件替换命令行?,资料,命令,文件,数据,名称,系统,实时,工作,字符串,批

    linux命令行解锁文件?

    linux命令行解锁文件?,系统,地址,工具,工作,管理,电脑,命令,文件,信息,密码,L

    读写文件命令linux?

    读写文件命令linux?,系统,数字,电脑,档案,地址,命令,文件,标准,位置,设备,lin

    统计文件夹linux命令?

    统计文件夹linux命令?,系统,数据,文件夹,文件,档案,代码,软件,信息,时间,标

    linux文件异或命令?

    linux文件异或命令?,数字,系统,工作,管理,命令,数据,网络,文件,第一,单位,基

    linux数据库升级命令?

    linux数据库升级命令?,系统,信息,时间,最新,网络,名字,地址,管理,简介,传播,l

    linux命令引用文件名?

    linux命令引用文件名?,工作,系统,信息,命令,数据,文件,时间,灵活,名称,标准,l