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

<?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)转化字符编码才能正常显示汉字

转载于:https://www.cnblogs.com/tudou1223/p/3983015.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值