按:用PHP实现office文档的下载,大部分借助于PHPWord或其他类似组件,要么使用付费的第三方在线服务,这里尝试用原生PHP来实现
1, 代码如下
<?php
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
//有了这些,可以把带HTML标签的html源码导入到word里,并且可以保持html的样式
/*
<STYLE>
BR.page { page-break-after: always }
</STYLE>
在<head>部分加这个是为了实现打印的时候分页
*/
//文件流
$wordStr = '<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<STYLE>
BR.page { page-break-after: always }
</STYLE>
</head><body>';
$wordStr .= '<b>hello word</b>';
$wordStr .= '<p>this is html code</p>';
$wordStr .= '<table>
<tr>
<td>
php
</td>
<td>
是世界上
</td>
<td>
坠吼的语言!
</td>
</tr>
</table>';
$wordStr .= '</body></html>';
//文件名
$filename = '原生php实现word附件下载';
//防止导出乱码
$file = iconv("utf8","GBK", $filename);
//定义文件类型
header("Content-Type: application/doc");
//附件形式下载
header("Content-Disposition:attachment; filename=".$file.".doc");
//输出文件流
echo $wordStr;
2, 测试
3, 需对header()方法做进一步了解