如果你的编码格式是utf-8的话就用这个

1.找到 Section.php 的 addText 函数

 $givenText = utf8_encode($text);

改成

 $givenText = iconv('gbk', 'utf-8', $text);

2.找到template.php这个文件,找到这个,把$replace = utf8_encode($replace);注释,换成 $replace =iconv('gbk', 'utf-8', $replace);

 public function setValue($search, $replace) {
if(substr($search, 0, 2) !== '${' && substr($search, -1) !== '}') {
$search = '${'.$search.'}';
} if(!is_array($replace)) {
// $replace = utf8_encode($replace);
$replace =iconv('gbk', 'utf-8', $replace);
}

3.找到PHPWord\Section\Table\Cell.php中的addText()方法,把这行$text = utf8_encode($text);注释掉就可以了

4.输出的时候如果有汉字,就用这个输出

   $document->setValue('weekday', iconv("utf-8","gbk",$list['company_name']));

5.保存的时候也一样

 $document->save( iconv("utf-8","gbk",'C:/3D定制云_'.$list['company_name'].'.docx'));

6.下载word文档到本地

  header("Content-type:text/html;charset=utf-8");
$filename='upload/download/3D定制云_'.$bloc['company_name'].'.docx';
$file_path = iconv("utf-8","gbk",$filename);
$fil_name=$filename;
if (!file_exists($file_path)){
echo "没有该文件";
return;
}else{
ob_clean();
ob_start();
$fp = fopen($file_path,"r");
$file_size = filesize($file_path);
Header("Content-type:application/octet-stream");
Header("Accept-Ranges:bytes");
Header("Accept-Length:".$file_size);
Header("Content-Disposition:attchment; filename=".$fil_name);
$buffer=1024;
$file_count=0;
while (!feof($fp) && $file_count<$file_size ){
$file_con=fread($fp,$buffer);
$file_count +=$buffer;
echo $file_con;
}
fclose($fp);
ob_end_flush();
}

全部程序

 vendor('phpoffice/PHPWord/PHPWord');
$PHPWord = new \PHPWord();
$dir='upload/';
$word='test.docx';
$document = new \PHPWord_Template($dir.$word);
$document->setValue('Value1', $bloc['username']);
$document->setValue('Value2', $bloc['original_password']);
$document->setValue('weekday', iconv("utf-8","gbk",$bloc['company_name']));
$document->save( iconv("utf-8","gbk",'upload/download/3D定制云_'.$bloc['company_name'].'.docx')); header("Content-type:text/html;charset=utf-8");
$filename='upload/download/3D定制云_'.$bloc['company_name'].'.docx';
$file_path = iconv("utf-8","gbk",$filename);
$fil_name=$filename;
if (!file_exists($file_path)){
echo "没有该文件";
return;
}else{
ob_clean();
ob_start();
$fp = fopen($file_path,"r");
$file_size = filesize($file_path);
Header("Content-type:application/octet-stream");
Header("Accept-Ranges:bytes");
Header("Accept-Length:".$file_size);
Header("Content-Disposition:attchment; filename=".$fil_name);
$buffer=1024;
$file_count=0;
while (!feof($fp) && $file_count<$file_size ){
$file_con=fread($fp,$buffer);
$file_count +=$buffer;
echo $file_con;
}
fclose($fp);
ob_end_flush();
}

使用PHPword中文乱码并且下载的方法的更多相关文章

  1. jquery.ajax的url中传递中文乱码问题的解决方法

    jquery.ajax的url中传递中文乱码问题的解决方法   JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQu ...

  2. qt creator修改程序编码(解决中文乱码问题)的方法

    qt creator修改程序编码(解决中文乱码问题)的方法 qt creator修改程序编码的功能有几处. 1.edit - select encoding 选择载入(显示)编码和储存编码,其中GB2 ...

  3. windows下mysql中文乱码, 配置解决方法

    内容源自:windows下mysql中文乱码, 配置解决方法 解决方法:打开mysql安装目录,打开my.ini文件(如果只有my-default.ini文件,先将其改名为my.ini!!!) 修改内 ...

  4. resin后台输出中文乱码的解决的方法!

    近期从tomcat移植到resin,发现这东西不错啊! 仅仅是后台输出时有时候中文会乱码. 如今找到resin后台输出中文乱码的解决的方法: 编辑conf/resin.con文件: <!--ja ...

  5. 解决 php7 cli 模式下中文乱码的两中方法

    解决 php7 cli 模式下中文乱码的两中方法1. 给PHP文件开头加上 exec('chcp 936'); 然后把该文件以 ANSI 格式编码2. 在 php.ini 中设置 default_ch ...

  6. 【Cocos2d-x游戏开发】解决Cocos2d-x中文乱码的三种方法

    众所周知,Cocos2d-x是一款不错的开源引擎,但是在Cocos2d-x中直接使用中文是无法正确显示的.比如下面的情况: 解决这个问题常用的有三种方法:1.通过转换为UTF-8编码来显示.2.使用i ...

  7. 解决swfupload上传控件文件名中文乱码问题 三种方法 flash及最新版本11.8.800.168

    目前比较流行的是使用SWFUpload控件,这个控件的详细介绍可以参见官网http://demo.swfupload.org/v220/index.htm 在使用这个控件批量上传文件时发现中文文件名都 ...

  8. PHP中文乱码的常见解决方法总结

    PHP中文乱码是PHP开发中的常见问题之一.PHP中文乱码有时发生在网页本身,有些产生在于MySQL交互的过程中,有时与操作系统有关.下面进行一番总结. 一.首先是PHP网页的编码 1. php文件本 ...

  9. PHPWord中文乱码、单元格合并、动态表格模板解决方案合集

    摘要:  最近一个项目开发要用到PHP技术导出Word文档,采用PHPWord插件,版本为0.6.2 beta,CodePlex已停止维护.网上还有另外一个版本的PhpWord,项目类名大小写上略有不 ...

随机推荐

  1. 在Android上编写模块化项目(翻译)

    来源博客:Wang Jie's Blog 本文链接:http://blog.wangjiegulu.com/2018/02/13/writing_a_modular_project_on_androi ...

  2. 关于JavaScript的事件处理一些知识

    <JS事件处理> Event对象详细信息:http://www.w3school.com.cn/jsref/dom_obj_event.asp JS原生支持3中绑定事件方式: 1.以标签属 ...

  3. webpack的世界

    本文也是多次学习webapck积累下来的知识点,一直在云笔记里. webpack的原理 webpack构建流程 从启动webpack构建到输出结果经历了一系列过程,它们是: 解析webpack配置参数 ...

  4. [JSOI2008]最大数maxnumber

    [JSOI2008]最大数maxnumber 标签: 线段树 单独队列 题目链接 题解 线段树裸题. 如果一直RE可能是你用的cin/cout. Code #include<cstdio> ...

  5. Shiro 核心功能案例讲解 基于SpringBoot 有源码

    Shiro 核心功能案例讲解 基于SpringBoot 有源码 从实战中学习Shiro的用法.本章使用SpringBoot快速搭建项目.整合SiteMesh框架布局页面.整合Shiro框架实现用身份认 ...

  6. jstl c标签 ”test does not support runtime expressions“

    将jstl 的uri <%@ taglib prefix="c" uri="http://Java.sun.com/jstl/core" %>(没有 ...

  7. Docker容器技术

    Docker介绍 什么是容器 Linux容器是与系统其他部分隔离开的一系列进程,从另一个系统镜像运行,并由该镜像提供支持进程所需的全部文件. 容器镜像包含了应用的所有依赖项,因而在从开发到测试再到生产 ...

  8. Django静态文件路径设置

    提示 : Error fetching command 'collectstatic': You're using the staticfiles app without having set the ...

  9. Pandoc将markdown转换为word

    markdown转换为word的指令 直接将markdown转换为word pandoc -f markdown -t docx ./test.md -o test.docx 关于markdown转为 ...

  10. uva1625

    思路:每次选择颜色面临有两个选择:1.序列A的首部颜色 2.序列B的首部元素,定义状态d[i][j]表示A序列已经选取了前i个颜色,B序列已经选取了前j个颜色的情况下最小的L(c)总和. 状态转移:c ...