PHP创建word文档的方法(平台无关)


Posted in PHP onMarch 29, 2016

本文实例讲述了PHP创建word文档的方法。分享给大家供大家参考,具体如下:

关于用PHP生成word,在网上找了很多资料,有调用COM组件生成的,有安装PHP扩展生成的。都不免麻烦,以下为比较简洁的一种方法,且可跨平台。

以下为详细代码:

class.word.php

<?php
class Word{
  function start(){
    ob_start(); //打开输出控制缓冲
    echo '<html xmlns:o="urn:schemas-microsoft-com:office:office"';
    echo 'xmlns:w="urn:schemas-microsoft-com:office:word"';
    echo 'xmlns="http://www.w3.org/TR/REC-html40">';
  }
  function save($path){
    echo "</html>";
    $data=ob_get_contents(); //返回输出缓冲区的内容
    ob_end_clean(); //清空缓冲区并关闭输出缓冲
    $this->writeFile($path,$data); //将缓冲区内容写入word
  }
  function writeFile($fn,$data){
    $fp=fopen($fn,"wb+");
    fwrite($fp,$data);
    fclose($fp);
  }
}

index.php

<?php
include("class.word.php");
$word=new Word();
$word->start();
//以下内容会保存在WORD文件中,可以使用HTML标签
?>
 <h1>直接用php创建word文档</h1>
 作者:axgle
<hr size=1>
 <p>如果你打开data.doc,看到了这里的介绍,则说明word文档创建成功了。
<p>
不论是在什么操作系统下,使用本方法都可以直接用PHP生成word文档。绝对不是吹牛!
就算是没有安装word,也能够生成word文件。
当然了,生成的word文件可以用word,wps或者其他软件打开。
<p>
<b>使用方法:</b>
<br>
首先用$word->start()表示要生成word文件了。
然后你可以输出任何的HTML代码,不论是从文件读过来再写到这里,
还是直接在这里输出HTML,都没有关系。
<p>等你输出完毕后,用$word->save($path)方法,其中$path是你想
生成的word文件的名称(可以给出完整的路径).当你使用了$word->save()
方法后,这后面的任何输出都和word文件没有关系了,也就是说word的生成
工作就完成了。之后就和你平常使用php的方式一样拉。随便你输出什么东西,
都直接在浏览器里输出,而不会写到word里面去。
<p>这是本人想到的一个很有意思的方法,它的实现方法出人意料的简单,并且避免
了对windows环境的依赖。
<br>哈哈,很有意思吧?享受它吧!
<hr size=1>
<?php
//以上内容会保存在WORD文件中
$word->save("data.doc");//保存word并且结束.
//以下内容正常输出在页面文件中
header("Content-type:text/html;charset=utf-8");
echo 'data.doc生成成功,请到目录下查看<br>';
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP安全编程之加密功能
Oct 09 PHP
php生成随机密码的三种方法小结
Sep 04 PHP
PHP中的函数嵌套层数限制分析
Jun 13 PHP
10条PHP高级技巧[修正版]
Aug 02 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
Jun 19 PHP
php中的动态调用实例分析
Jan 07 PHP
php中header设置常见文件类型的content-type
Jun 23 PHP
四个常见html网页乱码问题及解决办法
Sep 08 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
Feb 17 PHP
PHP常见的序列化与反序列化操作实例分析
Oct 28 PHP
TP5框架简单登录功能实现方法示例
Oct 31 PHP
基于PHP实现用户登录注册功能的详细教程
Aug 04 PHP
PHP中key和current,next的联合运用实例分析
Mar 29 #PHP
CodeIgniter基于Email类发邮件的方法
Mar 29 #PHP
PHP中抽象类、接口的区别与选择分析
Mar 29 #PHP
php实现图片缩略图的方法
Mar 29 #PHP
YII动态模型(动态表名)支持分析
Mar 29 #PHP
Yii操作数据库实现动态获取表名的方法
Mar 29 #PHP
Yii数据库缓存实例分析
Mar 29 #PHP
You might like
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
2014/06/25 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
跨域表单提交状态的变相判断代码
2009/11/12 Javascript
理解Javascript_14_函数形式参数与arguments
2010/10/20 Javascript
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
js重写alert控件(适合学习js的新手朋友)
2014/08/24 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
javascript常用代码段搜集
2014/12/04 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
VUE中的无限循环代码解析
2017/09/22 Javascript
详解HTML5 使用video标签实现选择摄像头功能
2017/10/25 Javascript
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
2018/03/10 Javascript
javascript实现计算器功能
2020/03/30 Javascript
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
python装饰器初探(推荐)
2016/07/21 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
python实现银行账户系统
2021/02/22 Python
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
Whittard官方海外旗舰店:英国百年茶叶品牌
2018/02/22 全球购物
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
如何利用find命令查找文件
2016/11/18 面试题
幼儿园大班开学寄语(2015秋季)
2015/05/27 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
2016年优秀团员事迹材料
2016/02/25 职场文书
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js