总体思路是使用antiword在linux下将word转化为txt,然后在进行内容处理

期间出现了乱码问题,但是google之后解决了:

<?php
header("Content-type: text/html; charset=utf-8");$filename = '/home/video/data/test.doc';
#$content = shell_exec('antiword '.$filename);
$content = shell_exec('antiword -mUTF-8 '.$filename); echo '<pre>';
print_r ($content);
echo '</pre>';

将Word文件转换成Text文件的工具!此Word只能是Word2007之前的格式

首先去http://www.winfield.demon.nl 网站下载antiword

antiword支持多平台,以windows和linux为例,

一.Linux

# wget http://www.winfield.demon.nl/linux/antiword-0.37.tar.gz
# tar zxvf antiword-0.37.tar.gz
#cd antiword-0.37
#make
#make install 
安装成功
会在当前用户目录的~/bin 生成antiword执行文件,
并在当用户目录的~/.antiword 下有一些资源文件(就是文字的编码所需的文件)

拷贝一个doc文件到用户目录,

执行
#antiword aaaa.doc
会将aaaa.doc的内容打印到屏幕.

问题: 当我使用web调用这个命令来操作的时间,不能解析word文件,得不到任何输出

将~/bin/antiword拷贝到/bin下 通过apache执行
<?php
`/bin/antiword aaaa.doc > /tmp/test.txt 2>&1`;

将错误信息打出后,发现,是找不到资源文件 一个是去/root/.antiword,一个去/usr/share/antiword/
默认antiword 会去,当前用户的~/.antiword 目录下查找,如果没有
就去/usr/share/antiword/目录去找, 这个目录是全局 查找.

当前上面的/root/.antiword是存在的,但是apache是以nobody方式运行,/root/.antiword这个目录权限的问题,所以无法找到,

回去antiword 编译目录 查看Makefile文件
#cd antiword-0.37
#less MakeFile

发现有一个global_install选项,
#make global_install
这样就将所有资源文件复制到了/usr/share/antiword
回头运行上面的程序的PHP就没有问题了!!
总结:/usr/share/antiword这个目录,可以查找C的源文件,并修改后再编译,比如定位的一个用户的目录下面,
我在实验 在虚拟机上通过web实现,由于虚拟机没有开ssh,但是可以通过php调用命令
我在本地用redhat as5编译的,拷到虚拟机用的是Debian 4.0,可能是内核不同,无法执行也看不到错误信息,
回头下载Debian 重新编译一次再试试.

PHP在linux下读取word相关推荐

  1. Linux下读取USB扫描枪数据

    1.USB扫描枪   USB接口的扫描枪相当于键盘输入,在Windows或者Linux下,在成功安装驱动的前提下,打开文件编辑器如word.txt等.扫描枪读出到条码数据时,数据即被捕获到光标处. 2 ...

  2. Windows如何读取Linux,Linux下读取Windows注册表

    原本以为Linux下读取Windows的注册表是个异想天开.无法实现的想法,忽然发现了老外写的一段小文章 http://www.linuxidc.com/Linux/2011-04/34100p2.h ...

  3. linux怎么读取群辉数据,Linux下读取群晖SHR/RAID硬盘组 Data Recovering of Synology DSM SHR/RAID Volume...

    背景 昨天DSM的pgsql坏了,修复的时候一时手贱把群晖的libc.so给弄坏了,彻底瘫了,想到的解决办法如下: linux下读取系统区(DSM下所有初始化过的sata硬盘的头两个分区组的raid) ...

  4. linux打开word乱码,解决linux下openoffice word文件转PDF中文乱码的问题

    网上很多介绍是由于jdk中的没有字体导致乱码,而我遇到的是转换过程并未报错,但转换后的PDF中是乱码,尝试在jre/lib/fonts/中增加字体,还是不能解决问题,因此可以判断非jre字体问题,是l ...

  5. c++ linux下读取指定目录的所有文件名字

    总结: linux下的两个关键函数 1.     opendir()     打开一个目录 2.     readdir()     从一个目录中读取一个新的文件 windows下 读取指定目录的所有 ...

  6. linux下读取ntfs数据,在Linux中读取NTFS分区上的数据

    在Linux中读取NTFS分区上的数据 在有些情况下,系统需要访问本地NTFS分区上的数据,也可能需要访问网络上NTFS文件格式的数据.而使用mount -t挂载文件系统时,系统报告不支持NTFS错误 ...

  7. Linux下打开word等office文件(openoffice安装)

    office并没有Linux版本. 但是,linux平台下也提供了许多可以打开word等文件的软件. 当初尝试使用了国产的永中office.其的确提供了office基本所有的常用功能,但是他会自动替换 ...

  8. Linux下读取smBIOS源码,Linux下读取SMBIOS信息

    来源:http://www.linuxde.net/2013/02/12499.html uefi shell下使用smbiosview linux下使用dmidecode 或者amidecode(a ...

  9. linux查询bois信息,Linux下读取SMBIOS信息

    来源:http://www.linuxde.net/2013/02/12499.html uefi shell下使用smbiosview linux下使用dmidecode 或者amidecode(a ...

最新文章

  1. XSS攻击之窃取Cookie
  2. 使用ZFS的十条理由
  3. 卸载shockwave flash插件
  4. pip国内镜像源速度几十倍于官方及如何设置
  5. 关于知识蒸馏,你想知道的都在这里!
  6. Springboot07配制数据统一返回格式以及定义统一的异常处理类
  7. 学习笔记(07):MySQL数据库运维与管理-02-用户权限授予演示
  8. C++提高部分_C++模板的局限性_以及用模板具体化来解决模板局限性问题---C++语言工作笔记086
  9. 网络-UDP与TCP
  10. java-合并两个有序链表
  11. 怎么批量修改pdf文件名?
  12. 悦读 | 人生十论. 钱穆
  13. Linuxptp安装部署
  14. 富文本编辑器(超简单的)
  15. java导出功能(多级表头,复杂表头)
  16. 经典密码学与现代密码学
  17. ReportStudio入门教程(七十一) - 显示时间进度(文字版)
  18. stanford-corenlp 中各词性含义标注
  19. PL/SQL 如何查看当前连接信息以及SQL PLUS如何指定IP地址
  20. 【虚函数指针 虚函数表】

热门文章

  1. Unreal Blueprint API Reference[Add Documentation Node...]
  2. 离散数学1.3一阶谓词逻辑
  3. 电脑如何录制 gif 动图?使用 GitCam!
  4. 猪齿鱼Choerodon UI的级联数据源之间、非级联数据源之间的请求状态进行关联
  5. Java面试汇总四 当下主流MQ消息队列的优缺点
  6. w3school 在线教程
  7. MATLAB安装后出现“License Manager Error -8?”,替换文档时报错解决方法
  8. GoSword 开源前后端分离后台管理框架
  9. 【错题记录】JavaScript专项练习(篇四)
  10. 朱松纯 | 人工智能的现状、任务、构架与统一(上)