您的位置:首页 > 编程语言 > PHP开发

PHP生成word的方法(解决乱码问题)

2014-09-20 10:26 513 查看
<?php
class word
{
function start()
{
ob_start();
echo '<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">';
}
function save($path)
{

echo "</html>";
$data = ob_get_contents();
ob_end_clean();

$this->wirtefile ($path,$data);
}

function wirtefile ($fn,$data)
{
$fp=fopen($fn,"wb");
fwrite($fp,iconv("UTF-8","GBK",$data));
fclose($fp);
}
}
$html = '
<table width=600 cellpadding="6" cellspacing="1" bgcolor="#336699">
<tr bgcolor="White">
<td>PHP10086</td>
<td><a href="http://www.php10086.com" target="_blank" >http://www.php10086.com</a></td>
</tr>
<tr bgcolor="red">
<td>PHP10086</td>
<td><a href="http://www.php10086.com" target="_blank" >http://www.php10086.com</a></td>
</tr>
<tr bgcolor="White">
<td colspan=2 >
PHP10086<br>
最靠谱的PHP技术博客分享网站
<img src="http://www.php10086.com/wp-content/themes/WPortal-Blue/images/logo.gif">
</td>
</tr>
</table>
';

//批量生成
for($i=1;$i<=3;$i++){
$word = new word();
$word->start();
//$html = "aaa".$i;
$wordname = 'PHP10086.com'.$i.".doc";
echo $html;
$word->save($wordname);
ob_flush();//每次执行前刷新缓存
flush();
}
?>


网上普遍都有这个方法,但是真正运行起来 文件名如果是中文的情况下 会是乱码,而word的汉字也是乱码,必须用

iconv("UTF-8","GBK",$data)转化字符编码才能正常显示汉字
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: