phpword乱码如何解决
php word 乱码如何解决?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!
目前成都创新互联公司已为上千多家的企业提供了网站建设、域名、雅安服务器托管、成都网站托管、企业网站设计、酒泉网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
php word乱码的解决办法:首先打开“/Writer/Word2007/Base.php”文件;然后添加“$objWriter->writeAttribute(‘w:eastAsia’, $font)”内容;最后保存修改即可。
PHPword解决中文乱码
一、增加东亚字体支持
打开并编辑路径/Writer/Word2007/Base.php文件内容,大概在第349行(行数随着版本可能会有变化)大概函数_writeTextStyle内添加:
$objWriter->writeAttribute(‘w:eastAsia’, $font)
比如我的修改片段基本是下面这样:
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(); }
二、 解决中文乱码问题(此解法对于GBK编码有用,不适用于UTF-8)
编辑PHPWord/Template.php
找到代码$replace = utf8_encode($replace);,删除或者注释掉这行代码,添加$replace = iconv( ‘gbk’,’utf-8′, $replace);,比如代码改为如下:
if(!is_array($replace)) { //$replace = utf8_encode($replace); $replace =iconv(‘gbk’, ‘utf-8′, $replace); // 注释掉上面行后添加这行 }
调用方式如下:
$document->setValue(‘Template’, iconv(‘utf-8′, ‘GB2312//IGNORE’, ‘中文’));
上面的代码主要解决模板的问题,
下面同样的道理,解决Section添加文本的问题,
在PHPWord/Section.php找到代码$givenText = utf8_encode($text);,
删除或者注释掉这行代码,添加$givenText = iconv(‘gbk’, ‘utf-8′, $text);,比如代码如下:
public function addText($text, $styleFont = null, $styleParagraph = null) { //$givenText = utf8_encode($text); $givenText = iconv(‘gbk’, ‘utf-8′, $text); // 注释掉上面行后添加这行 }
感谢各位的阅读!看完上述内容,你们对php word 乱码如何解决大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注创新互联行业资讯频道。
分享标题:phpword乱码如何解决
本文路径:http://scyanting.com/article/gesjci.html