【问题标题】:Phpword and accented charactersPhpword 和重音字符
【发布时间】:2017-06-07 17:04:32
【问题描述】:
您好,我遇到了 php word 的问题。当我在文件中使用重音字符时,文件已损坏且无法打开。
<?php
require_once 'PHPWord.php';
$PHPWord = new PHPWord();
$document = $PHPWord->loadTemplate('Documents/LM.docx');
$document->setValue('Value1', "example with accent évian");
$document->save('Documents/LMD.docx');
?>
【问题讨论】:
标签:
diacritics
non-ascii-characters
phpword
【解决方案1】:
我假设您的代码生成的 word 文件在不使用特殊重音字符的情况下不会损坏。但是无论如何,您可以尝试使用以下版本吗? loadTemplate 函数在 0.13.0 版本中已弃用,应使用 TemplateProcessor 代替 + htmlspecialchars 包装通常应用于文本内容。
$templateProcessor = new PhpWord\TemplateProcessor('Documents/LM.docx');
$templateProcessor->setValue('Value1', htmlspecialchars('example with accent évian', ENT_COMPAT, 'UTF-8'));
$templateProcessor->saveAs('Documents/LMD.docx');
这对我有用,PhpWord 0.13.0 没有问题