linux下如何用php读取word
在实际的工作中遇到到要导入word格式的文件,经过努力,终于成功了。
在linux上用PHP读取WORD文档,其实是使用了 antiword程序把word文档转化为txt文档。
再使用php执行系统命令调用而已。
具体操作如下:
1、安装antiword
官方站:http://www.winfield.demon.nl/
下载地:http://www.winfield.demon.nl/linux/antiword-0.37.tar.gz
下载完,解压,进入目录
使用命令 make && make install
即可完成安装。
安装时,自动安装到了/root/目录下,只有root才可执行该命令,我们需要改一下路径,COPY到/usr中方便调用。
cp /root/bin/*antiword /usr/local/bin/
mkdir /usr/share/antiword
cp -R /root/.antiword/* /usr/share/antiword/
chmod 777 /usr/local/bin/*antiword
chmod 755 /usr/share/antiword/*
以上操作以后即可在任意用户调用 antiword命令。
然后编写php脚本:
- $content = shell_exec('/usr/local/bin/antiword '.$filename);
即可读入文件内容。如果中文码乱,再加上编码即可:
- $content = shell_exec('/usr/local/bin/antiword -m UTF-8.txt '.$filename);
现在你可以在PHP中任意处理内容了。
在使用的过程中发现了个小小的问题,就是在默认情况下antiword生成的文本把doc中的换行都改成了硬回车,明显有点多余……
用-h看了看,发现只须在“antiword”命令后"-w 0"(-w为设置行宽,0即无限制)便可解决问题……
linux下如何用php读取word的更多相关文章
- 在Linux下的中断方式读取按键驱动程序
// 在Linux下的中断方式读取按键驱动程序 //包含外部中断 休眠 加入poll机制 // 采用异步通知的方式 // 驱动程序发 ---> app接收 (通过kill_fasync()发送) ...
- 在Linux下如何用Shell脚本读写XML?现有一个config.xml(转)
在Linux下如何用Shell脚本读写XML?现有一个config.xml <?xml version="1.0" encoding="UTF-8"?&g ...
- Ubuntu(Linux)下如何用源码文件安装软件
在Ubuntu中附带了丰富的软件,这些软件一般使用图形化的自动方式(“添加/删除”或“新立得”)即可轻松安装,但是对于那些刚刚问世的新软件,Ubuntu的源中还未收录其中,这时我们就需要用到一种更通用 ...
- Linux下如何用vi编辑和保存文件
vi是Linux终端下或控制台下常用的编辑器,基本的操作方式为:vi /路径/文件名 例如,vi /etc/fstab表示显示/etc/fstab文件的内容.使用键盘上的Page Up和Page Do ...
- linux下U盘的读取
1.虚拟机vmware右下角,找到大容量存储设备图标,右键->connect(disconect from host):使U盘连接到虚拟机中来. 2.打开终端:fdisk -l [root@lo ...
- linux下如何用GDB调试c++程序
转:http://blog.csdn.net/wfdtxz/article/details/7368357 GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形 ...
- 关于linux下QIODevice类进行读取的几个方法的理解
Qt中对读写设备的支持力度很大,其都继承与QIODevice类,其中有几个方法是非常值得注意的,不管是在用原始的serial port进行通信还是使用网络的TCP/IP 或者UDP或者HTTP等协议时 ...
- PHP在linux读取word文档
几天帮朋友解决一个技术问题,在Linux下,将word文档中的内容读取,然后使用正则匹配,拼成sql入库 查阅了外文资料和google之后,步骤如下: #wget http://www.winfiel ...
- [转载]linux上用PHP读取WORD文档
在linux上用PHP读取WORD文档,其实是使用了 antiword程序把word文档转化为txt文档. 再使用php执行系统命令调用而已. 具体操作如下: 1.安装antiword 官方站:htt ...
随机推荐
- 【单调队列+尺取】HDU 3530 Subsequence
acm.hdu.edu.cn/showproblem.php?pid=3530 [题意] 给定一个长度为n的序列,问这个序列满足最大值和最小值的差在[m,k]的范围内的最长子区间是多长? [思路] 对 ...
- Bat命令学习 (转载)
基础部分:====================================================================== 一.基础语法: 1.批处理文件是一个“.bat” ...
- Linux之VMware虚拟机取消DHCP
1.点击编辑项 2.选择VMnet1 点击更改设置 3.选择VMnet1 去掉使用本地DHCP服务 点击应用 原文地址:https://blog.csdn.net/star_in_shy/arti ...
- 填报志愿(codevs 2930)
题目描述 Description 高考已经结束,而志愿填报正在进行中- 吴校长的学校里有n位同学,每位同学有ki个愿意去的大学.而在吴老师的省份中,有m所大学有招生名额.根据往年的经验,对于每所大学( ...
- 你需要的130个vim命令
参考文章:http://www.oschina.net/news/43167/130-essential-vim-commands,其中有些我以为需要补充的及时补充或修改 从 1970 年开始,vi ...
- iOS常用三方库收集
除非Pod可以直接加载到工程中的外,收集一下 https://github.com/kejinlu/KKGestureLockView 好用的手势解锁
- android的系统学习
先从Android的应用开发开始,等到对应用掌握的比较熟悉了,开始慢慢阅读一些Android 应用框架层的源代码,然后再渐渐往下去了解Android的JNI.Libraries.Dalvik虚拟机.H ...
- nginx的配置文件 【nginx.conf】
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...
- 阻塞IO下的echo回显实验
我们只关心代码中的业务逻辑和底层阻塞原因 客户端代码 发送数据 std::string message(len, 'S'); int nw = stream->sendAll(message.c ...
- PAT (Advanced Level) 1086. Tree Traversals Again (25)
入栈顺序为先序遍历,出栈顺序为中序遍历. #include<cstdio> #include<cstring> #include<cmath> #include&l ...