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+mysql一个名片库程序
Oct 09 PHP
PHP编码规范之注释和文件结构说明
Jul 09 PHP
PHP抽象类 介绍
Jun 13 PHP
php去除HTML标签实例
Nov 06 PHP
thinkphp实现面包屑导航(当前位置)例子分享
May 10 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
Jun 05 PHP
laravel安装和配置教程
Oct 29 PHP
PHP解析RSS的方法
Mar 05 PHP
PHP合并数组+号和array_merge的区别
Jun 25 PHP
php中时间函数date及常用的时间计算
May 12 PHP
PHP数组遍历的几种常见方式总结
Feb 15 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
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
javascript网页关键字高亮代码
2008/07/30 Javascript
使用Mootools动态添加Css样式表代码,兼容各浏览器
2011/12/12 Javascript
javascript实用小函数使用介绍
2013/11/11 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
2015/11/30 Javascript
浅谈javascript的闭包
2017/01/23 Javascript
JavaScript创建对象的七种方式全面总结
2017/08/21 Javascript
Angular Renderer (渲染器)的具体使用
2018/05/03 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
2020/01/11 jQuery
Vue中正确使用Element-UI组件的方法实例
2020/10/13 Javascript
vue+springboot+element+vue-resource实现文件上传教程
2020/10/21 Javascript
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
python绘制散点图并标记序号的方法
2018/12/11 Python
Python 分享10个PyCharm技巧
2019/07/13 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
python循环输出三角形图案的例子
2019/11/22 Python
Python调用ffmpeg开源视频处理库,批量处理视频
2020/11/16 Python
面向对象概念面试题(.NET)
2016/11/04 面试题
大二法英学生职业生涯规划范文
2014/02/27 职场文书
数控技校生自我鉴定
2014/04/19 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
职工小家建设活动方案
2014/08/25 职场文书
文员岗位职责
2015/02/04 职场文书
2015年副班长工作总结
2015/05/15 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang