您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

phpword替换模板内容和解决中文乱码

2026/1/1 20:37:46发布20次查看
本篇文章给大家分享的内容是phpword替换模板内容和解决中文乱码的问题,有需要的朋友可以看一下。
好吧 先下载吧:
下载地址:https://pan.baidu.com/s/1upup2rpltvxidjpgi9kk6a
密码:qxsd
手册 http://phpword.readthedocs.io/en/latest/search.html?q=setvalue&check_keywords=yes&area=default
//使用vendor包含phpword类
require_once ./word/phpword.php;
//初始化phpword对象
$phpword = new phpword();
$omember['m_real_name'] = 电镜测试;
$omember['content'] = 电镜测试需求描述电镜测试需求描述电镜测试需求描述电镜测试
需求描述电镜测试需求描述电镜测试需求描述电镜测试需求描述电镜测试需求描述电镜测试需求描述
电镜测试需求描述电镜测试需求描述电镜测试需求描述电镜测试需求描述电镜测试需求描述电镜测试需求描述电镜测试需求
描述电镜测试需求描述电镜测试需求描述电镜测试需求描述;
//载入模板文件
$document = $phpword->loadtemplate('./word/test/template1.docx');
//替换word模板文件中的一处内容,这里如果要显示中文,则必须使用iconv函数
$document->setvalue('need_name', iconv('utf-8', 'gb2312//ignore', $omember['m_real_name']));
$document->setvalue('content',iconv('utf-8', 'gb2312//ignore', $omember['content']));
//替换word模板文件中的一处内容,不使用中文的setvalue
$document->setvalue('file', 7897898998);
$filename = './word/test/m-i-'.time().'.docx';
//保存word文档
$document->save($filename);
//输出下载word文档
//header(location: .$filename)
模板文件里面的变量写法
content   =》    ${content}  记住一定不要在这个变量上面加任何样式否则会被影响
need_name =》    ${need_name}
file      =》    ${file}
这样你会发现中文乱码了 你需要修改几个文件:
 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); //新增
}
好了 现在没有问题了
来源:二流子
相关推荐:
php如何解决中文乱码问题?
以上就是phpword替换模板内容和解决中文乱码 的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product