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之数据库操作详解及乱码解决!
Jan 02 PHP
php 分页原理详解
Aug 21 PHP
PHP 日期加减的类,很不错
Oct 10 PHP
PHP开发中的错误收集,不定期更新。
Feb 03 PHP
php中批量替换文件名的实现代码
Jul 20 PHP
PHP反转字符串函数strrev()函数的用法
Feb 04 PHP
iis下php mail函数的sendmail配置方法(官方推荐)
Apr 25 PHP
php中限制ip段访问、禁止ip提交表单的代码分享
Aug 22 PHP
PHP生成条形码大揭秘
Sep 24 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
Jul 20 PHP
php表单处理操作
Nov 16 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
Jun 02 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
新52大事件
2020/03/03 欧美动漫
利用Memcached在php下实现session机制 替换PHP的原生session支持
2010/08/21 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
半角全角相互转换的js函数
2009/10/16 Javascript
js 操作select与option(示例讲解)
2013/12/20 Javascript
javascript类型转换示例
2014/04/29 Javascript
jQuery选择器源码解读(七):elementMatcher函数
2015/03/31 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
js实现本地时间同步功能
2017/08/26 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
2017/11/07 Javascript
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
React 实现车牌键盘的示例代码
2019/12/20 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
2020/07/13 Javascript
在nodejs中创建child process的方法
2021/01/26 NodeJs
vue登录页实现使用cookie记住7天密码功能的方法
2021/02/18 Vue.js
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
Python 时间操作例子和时间格式化参数小结
2014/04/24 Python
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
python避免死锁方法实例分析
2015/06/04 Python
举例详解Python中yield生成器的用法
2015/08/05 Python
Python队列的定义与使用方法示例
2017/06/24 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
python 编写简单网页服务器的实例
2018/06/01 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
2018/07/02 Python
对Python捕获控制台输出流的方法详解
2019/01/07 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
python re模块匹配贪婪和非贪婪模式详解
2020/02/11 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
大学生实习证明范本
2014/01/15 职场文书
艺校音乐专业自我鉴定范文
2014/03/01 职场文书
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers