PHP使用模板替换方法

好吧 先下载吧:
下载地址:https://pan.baidu.com/s/1upup2rpLTVXIdJpGi9kK6A
密码:qxsd
手册 http://phpword.readthedocs.io/en/latest/search.html?q=setValue&check_keywords=yes&area=default

<?php
//header('Content-Type:text/html;charset=utf-8');/*设置php编码为utf-8*/
//使用Vendor包含PHPWord类
require_once "./PHPWord.php";
//初始化PHPWord对象
$PHPWord = new PHPWord();
$document = $PHPWord->loadTemplate('./template.docx');
$document->setValue('title', iconv('utf-8', 'GB2312//IGNORE', '交通劝导'));
$document->setValue('name',iconv('utf-8', 'GB2312//IGNORE', '张三'));

$document->save('test.docx');
//输出下载Word文档
//header("Location:文件路径 ");





模板文件里面的变量写法 

 ${content}  记住一定不要在这个变量上面加任何样式否则会被影响


这样你会发现中文乱码了 你需要修改几个文件:

 Word/Base.php     _WriteTextStyle()方法下面 
$objWriter->writeAttribute('w:eastAsia', $font); //修改新增

if($font != 'Arial') {
         $objWriter->startElement('w:rFonts');
       $objWriter->writeAttribute('w:eastAsia', $font); // 添加这行 修改新增
      $objWriter->writeAttribute('w:ascii', $font);
      $objWriter->writeAttribute('w:hAnsi', $font);
      $objWriter->writeAttribute('w:cs', $font);
   $objWriter->endElement();
}

PHPWord/Template.php  setValue()方法下:

if(!is_array($replace)) {
// $replace = utf8_encode($replace);  注释
 $replace = iconv( 'gbk','utf-8', $replace); //新增
}

好了 现在没有问题了


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值