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 if 想到的些问题
Mar 22 PHP
Optimizer与Debugger兼容性问题的解决方法
Dec 01 PHP
php提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
Mar 27 PHP
PHP加密扩展库Mcrypt安装和实例
Nov 10 PHP
php使用mkdir创建多级目录入门例子
May 10 PHP
采用memcache在web集群中实现session的同步会话
Jul 05 PHP
初识Laravel
Oct 30 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
Nov 18 PHP
php防止恶意刷新与刷票的方法
Nov 21 PHP
IIS 7.5 asp Session超时时间设置方法
Apr 17 PHP
PHP PDOStatement::columnCount讲解
Jan 30 PHP
laravel框架与其他框架的详细对比
Oct 23 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中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
zf框架的数据库追踪器使用示例
2014/03/13 PHP
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
php实现图片上传并进行替换操作
2016/03/15 PHP
PHP云打印类完整示例
2016/10/15 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
2020/12/16 PHP
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
用C/C++来实现 Node.js 的模块(一)
2014/09/24 Javascript
node.js中的fs.utimes方法使用说明
2014/12/15 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
2015/03/03 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
JSON数据中存在单个转义字符“\”的处理方法
2018/07/11 Javascript
使用Node.js实现一个多人游戏服务器引擎
2019/03/13 Javascript
layui使用数据表格实现购物车功能
2019/07/26 Javascript
jQuery中DOM常见操作实例小结
2019/08/01 jQuery
解决vue项目打包上服务器显示404错误,本地没出错的问题
2020/11/03 Javascript
python实现对excel进行数据剔除操作实例
2017/12/07 Python
使用NumPy和pandas对CSV文件进行写操作的实例
2018/06/14 Python
pygame游戏之旅 载入小车图片、更新窗口
2018/11/20 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
基于Python和PyYAML读取yaml配置文件数据
2020/01/13 Python
使用css3实现超炫的loading加载动画效果
2014/05/07 HTML / CSS
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
美国在线工具商店:Acme Tools
2018/06/26 全球购物
高三家长寄语
2014/04/03 职场文书
小学教师先进事迹材料
2014/12/15 职场文书
学校施工安全责任书
2015/01/29 职场文书
2015年体检中心工作总结
2015/05/27 职场文书
mysql 带多个条件的查询方式
2021/06/05 MySQL