使用PHPword中文乱码并且下载的方法
如果你的编码格式是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中文乱码并且下载的方法的更多相关文章
- jquery.ajax的url中传递中文乱码问题的解决方法
jquery.ajax的url中传递中文乱码问题的解决方法 JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQu ...
- qt creator修改程序编码(解决中文乱码问题)的方法
qt creator修改程序编码(解决中文乱码问题)的方法 qt creator修改程序编码的功能有几处. 1.edit - select encoding 选择载入(显示)编码和储存编码,其中GB2 ...
- windows下mysql中文乱码, 配置解决方法
内容源自:windows下mysql中文乱码, 配置解决方法 解决方法:打开mysql安装目录,打开my.ini文件(如果只有my-default.ini文件,先将其改名为my.ini!!!) 修改内 ...
- resin后台输出中文乱码的解决的方法!
近期从tomcat移植到resin,发现这东西不错啊! 仅仅是后台输出时有时候中文会乱码. 如今找到resin后台输出中文乱码的解决的方法: 编辑conf/resin.con文件: <!--ja ...
- 解决 php7 cli 模式下中文乱码的两中方法
解决 php7 cli 模式下中文乱码的两中方法1. 给PHP文件开头加上 exec('chcp 936'); 然后把该文件以 ANSI 格式编码2. 在 php.ini 中设置 default_ch ...
- 【Cocos2d-x游戏开发】解决Cocos2d-x中文乱码的三种方法
众所周知,Cocos2d-x是一款不错的开源引擎,但是在Cocos2d-x中直接使用中文是无法正确显示的.比如下面的情况: 解决这个问题常用的有三种方法:1.通过转换为UTF-8编码来显示.2.使用i ...
- 解决swfupload上传控件文件名中文乱码问题 三种方法 flash及最新版本11.8.800.168
目前比较流行的是使用SWFUpload控件,这个控件的详细介绍可以参见官网http://demo.swfupload.org/v220/index.htm 在使用这个控件批量上传文件时发现中文文件名都 ...
- PHP中文乱码的常见解决方法总结
PHP中文乱码是PHP开发中的常见问题之一.PHP中文乱码有时发生在网页本身,有些产生在于MySQL交互的过程中,有时与操作系统有关.下面进行一番总结. 一.首先是PHP网页的编码 1. php文件本 ...
- PHPWord中文乱码、单元格合并、动态表格模板解决方案合集
摘要: 最近一个项目开发要用到PHP技术导出Word文档,采用PHPWord插件,版本为0.6.2 beta,CodePlex已停止维护.网上还有另外一个版本的PhpWord,项目类名大小写上略有不 ...
随机推荐
- HDU3488 Tour [有向环覆盖 费用流]
Tour Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Submis ...
- 洛谷 P2194 HXY烧情侣【Tarjan缩点】 分析+题解代码
洛谷 P2194 HXY烧情侣[Tarjan缩点] 分析+题解代码 题目描述: 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里 ...
- 洛谷P2832 行路难 分析+题解代码【玄学最短路】
洛谷P2832 行路难 分析+题解代码[玄学最短路] 题目背景: 小X来到了山区,领略山林之乐.在他乐以忘忧之时,他突然发现,开学迫在眉睫 题目描述: 山区有n座山.山之间有m条羊肠小道,每条连接两座 ...
- Java中从键盘输入的三种方法
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- 35 个 jQuery 小技巧
1. 禁止右键点击 $(document).ready(function(){ $(document).bind("contextmenu",function(e){ return ...
- Sping Boot入门到实战之入门篇(二):第一个Spring Boot应用
该篇为Spring Boot入门到实战系列入门篇的第二篇.介绍创建Spring Boot应用的几种方法. Spring Boot应用可以通过如下三种方法创建: 通过 https://start.spr ...
- HDU - 4496 City 逆向并查集
思路:逆向并查集,逆向加入每一条边即可.在获取联通块数量的时候,直接判断新加入的边是否合并了两个集合,如果合并了说明联通块会减少一个,否则不变. AC代码 #include <cstdio> ...
- hdu1251 map水过
更快的方法应该是字典树,不用处理前缀. AC代码: #include<iostream> #include<cstring> #include<string> #i ...
- java网络编程(7)——利用tcp实现文件上传
其实客户端与服务端通讯的道理都是一样的,都是通过输入与输出这两个流,那么实现文件上传也就是同样的,客户端把文件读到文件流,服务端用文件流来接受,然后写到一个文件中,这样子就实现了文件上传,文件拷贝也是 ...
- APP性能测试(启动时间)
#encoding:utf-8 import csv import os import time class App(object): def __init__(self): self.content ...