PHP在linux下读取word
总体思路是使用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相关推荐
- Linux下读取USB扫描枪数据
1.USB扫描枪 USB接口的扫描枪相当于键盘输入,在Windows或者Linux下,在成功安装驱动的前提下,打开文件编辑器如word.txt等.扫描枪读出到条码数据时,数据即被捕获到光标处. 2 ...
- Windows如何读取Linux,Linux下读取Windows注册表
原本以为Linux下读取Windows的注册表是个异想天开.无法实现的想法,忽然发现了老外写的一段小文章 http://www.linuxidc.com/Linux/2011-04/34100p2.h ...
- linux怎么读取群辉数据,Linux下读取群晖SHR/RAID硬盘组 Data Recovering of Synology DSM SHR/RAID Volume...
背景 昨天DSM的pgsql坏了,修复的时候一时手贱把群晖的libc.so给弄坏了,彻底瘫了,想到的解决办法如下: linux下读取系统区(DSM下所有初始化过的sata硬盘的头两个分区组的raid) ...
- linux打开word乱码,解决linux下openoffice word文件转PDF中文乱码的问题
网上很多介绍是由于jdk中的没有字体导致乱码,而我遇到的是转换过程并未报错,但转换后的PDF中是乱码,尝试在jre/lib/fonts/中增加字体,还是不能解决问题,因此可以判断非jre字体问题,是l ...
- c++ linux下读取指定目录的所有文件名字
总结: linux下的两个关键函数 1. opendir() 打开一个目录 2. readdir() 从一个目录中读取一个新的文件 windows下 读取指定目录的所有 ...
- linux下读取ntfs数据,在Linux中读取NTFS分区上的数据
在Linux中读取NTFS分区上的数据 在有些情况下,系统需要访问本地NTFS分区上的数据,也可能需要访问网络上NTFS文件格式的数据.而使用mount -t挂载文件系统时,系统报告不支持NTFS错误 ...
- Linux下打开word等office文件(openoffice安装)
office并没有Linux版本. 但是,linux平台下也提供了许多可以打开word等文件的软件. 当初尝试使用了国产的永中office.其的确提供了office基本所有的常用功能,但是他会自动替换 ...
- Linux下读取smBIOS源码,Linux下读取SMBIOS信息
来源:http://www.linuxde.net/2013/02/12499.html uefi shell下使用smbiosview linux下使用dmidecode 或者amidecode(a ...
- linux查询bois信息,Linux下读取SMBIOS信息
来源:http://www.linuxde.net/2013/02/12499.html uefi shell下使用smbiosview linux下使用dmidecode 或者amidecode(a ...
最新文章
- XSS攻击之窃取Cookie
- 使用ZFS的十条理由
- 卸载shockwave flash插件
- pip国内镜像源速度几十倍于官方及如何设置
- 关于知识蒸馏,你想知道的都在这里!
- Springboot07配制数据统一返回格式以及定义统一的异常处理类
- 学习笔记(07):MySQL数据库运维与管理-02-用户权限授予演示
- C++提高部分_C++模板的局限性_以及用模板具体化来解决模板局限性问题---C++语言工作笔记086
- 网络-UDP与TCP
- java-合并两个有序链表
- 怎么批量修改pdf文件名?
- 悦读 | 人生十论. 钱穆
- Linuxptp安装部署
- 富文本编辑器(超简单的)
- java导出功能(多级表头,复杂表头)
- 经典密码学与现代密码学
- ReportStudio入门教程(七十一) - 显示时间进度(文字版)
- stanford-corenlp 中各词性含义标注
- PL/SQL 如何查看当前连接信息以及SQL PLUS如何指定IP地址
- 【虚函数指针 虚函数表】
热门文章
- Unreal Blueprint API Reference[Add Documentation Node...]
- 离散数学1.3一阶谓词逻辑
- 电脑如何录制 gif 动图?使用 GitCam!
- 猪齿鱼Choerodon UI的级联数据源之间、非级联数据源之间的请求状态进行关联
- Java面试汇总四 当下主流MQ消息队列的优缺点
- w3school 在线教程
- MATLAB安装后出现“License Manager Error -8?”,替换文档时报错解决方法
- GoSword 开源前后端分离后台管理框架
- 【错题记录】JavaScript专项练习(篇四)
- 朱松纯 | 人工智能的现状、任务、构架与统一(上)