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 相关文章推荐
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
Oct 09 PHP
windows下PHP APACHE MYSQ完整配置
Jan 02 PHP
一步一步学习PHP(6) 面向对象
Feb 16 PHP
vs中通过剪切板循环来循环粘贴不同内容
Apr 30 PHP
Views rows style模板重写代码
May 16 PHP
检查php文件中是否含有bom的函数
May 31 PHP
php生成数字字母的验证码图片
Jul 14 PHP
php socket通信(tcp/udp)实例分析
Feb 14 PHP
PHP数组内存利用率低和弱类型详细解读
Aug 10 PHP
smarty模板的使用方法实例分析
Sep 18 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
Aug 17 PHP
windows系统php环境安装swoole具体步骤
Mar 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和ACCESS写聊天室(七)
2006/10/09 PHP
php文件怎么打开 如何执行php文件
2011/12/21 PHP
解决Codeigniter不能上传rar和zip压缩包问题
2014/03/07 PHP
php实现的RSS生成类实例
2015/04/23 PHP
thinkPHP批量删除的实现方法分析
2016/11/09 PHP
Laravel框架实现定时发布任务的方法
2018/08/16 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
javascript forEach通用循环遍历方法
2010/10/11 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
动手写一个angular版本的Message组件的方法
2017/12/16 Javascript
Vue点击切换颜色的方法
2018/09/13 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
[03:09]显微镜下的DOTA2第一期——带你走进华丽的DOTA2世界
2014/06/20 DOTA
[01:01:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第一场 3月4日
2021/03/11 DOTA
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
json跨域调用python的方法详解
2017/01/11 Python
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
scrapy爬虫实例分享
2017/12/28 Python
python 实现创建文件夹和创建日志文件的方法
2019/07/07 Python
python实发邮件实例详解
2019/11/11 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
创业计划书的写作技巧及要点
2014/01/31 职场文书
就业协议书怎么填
2014/09/15 职场文书
员工培训协议书
2014/09/15 职场文书
领导干部“四风”查摆问题个人整改措施
2014/10/28 职场文书
2014年控辍保学工作总结
2014/12/08 职场文书
贷款工资证明范本
2015/06/12 职场文书
css3属性选择器 “~”(波浪号) “,”(逗号) “+”(加号)和 “>”(大于号)
2022/04/19 HTML / CSS