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 相关文章推荐
怎样在UNIX系统下安装MySQL
Oct 09 PHP
discuz的php防止sql注入函数
Jan 17 PHP
PHP利用REFERER根居访问来地址进行页面跳转
Sep 28 PHP
Thinkphp的volist标签嵌套循环使用教程
Jul 08 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
Jan 22 PHP
php生成唯一的订单函数分享
Feb 02 PHP
详解PHP中的PDO类
Jul 06 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
Laravel学习教程之request validation的编写
Oct 25 PHP
PHP创建对象的六种方式实例总结
Jun 27 PHP
Laravel相关的一些故障解决
Aug 19 PHP
PHP7 错误处理机制修改
Mar 09 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防盗链的基本思想 防盗链的设置方法
2015/09/25 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
2016/03/21 PHP
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
js select option对象小结
2013/12/20 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
JavaScript中switch判断容易犯错的一个细节
2014/08/27 Javascript
javascript几个易错点记录
2014/11/26 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
2016/03/16 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
5种JavaScript脚本加载的方式
2017/01/16 Javascript
详解Vue方法与事件
2017/03/09 Javascript
Vuex之理解Store的用法
2017/04/19 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
Vue中保存数据到磁盘文件的方法
2018/09/06 Javascript
vue 实现LED数字时钟效果(开箱即用)
2019/12/08 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
python+selenium开发环境搭建图文教程
2017/08/11 Python
使用Turtle画正螺旋线的方法
2017/09/22 Python
pandas将DataFrame的列变成行索引的方法
2018/04/10 Python
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
2019/03/13 Python
python如何将两个txt文件内容合并
2019/10/18 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
pytorch 获取tensor维度信息示例
2020/01/03 Python
Pandas的数据过滤实现
2021/01/15 Python
HTML5中canvas中的beginPath()和closePath()的重要性
2018/08/24 HTML / CSS
如何掌握自荐信格式呢
2013/11/19 职场文书
追悼会上的答谢词
2014/01/10 职场文书
法律进机关实施方案
2014/03/12 职场文书
个人委托书范本
2014/04/02 职场文书
爱我中华演讲稿
2014/05/20 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
MySQL索引知识的一些小妙招总结
2021/05/10 MySQL
HTML页面中使两个div并排显示的实现
2022/05/15 HTML / CSS