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
与数据库连接
Oct 09 PHP
关于php fread()使用技巧
Jan 22 PHP
php中将数组存到文件里的实现代码
Jan 19 PHP
php+iframe实现隐藏无刷新上传文件
Feb 10 PHP
PHP SPL标准库之SplFixedArray使用实例
May 12 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
Nov 27 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
Feb 07 PHP
php+ajax实现异步上传文件或图片功能
Jul 18 PHP
PHP进阶学习之垃圾回收机制详解
Jun 18 PHP
laravel框架添加数据,显示数据,返回成功值的方法
Oct 11 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程序员面试 切忌急功近利(更需要注重以后的发展)
2010/09/01 PHP
深入理解PHP原理之错误抑制与内嵌HTML分析
2011/05/02 PHP
AJAX的跨域访问-两种有效的解决方法介绍
2013/06/22 PHP
php断点续传之如何分割合并文件
2014/03/22 PHP
PHP中的替代语法简介
2014/08/22 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
2017/08/11 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
2018/05/10 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
2018/08/15 PHP
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
js innerHTML 的一些问题的解决方法
2008/06/22 Javascript
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
jquery动态加载js/css文件方法(自写小函数)
2014/10/11 Javascript
jQuery 选择器详解
2015/01/19 Javascript
js实现DOM走马灯特效的方法
2015/01/21 Javascript
javascript实现百度地图鼠标滑动事件显示、隐藏
2015/04/02 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
详解JavaScript跨域总结与解决办法
2016/10/31 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
jQuery中的一些小技巧
2017/01/18 Javascript
js上下视差滚动简单实现代码
2017/03/07 Javascript
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
详解微信小程序审核不通过的解决方法
2018/01/17 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
Vuex的API文档说明详解
2020/02/05 Javascript
js实现烟花特效
2020/03/02 Javascript
小程序实现左滑删除的效果的实例代码
2020/10/19 Javascript
基于vue+echarts数据可视化大屏展示的实现
2020/12/25 Vue.js
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
英国最大的宝石首饰超市:QP Jewellers
2018/09/23 全球购物
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
员工廉洁自律承诺书
2014/05/26 职场文书
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python