使用 PHPWord 填写 docx 文档时转义 '&'

Escape '&' when filling in a docx document using PHPWord

我正在构建一个必须填写 docx 文档的 Web 应用程序。我正在使用由 PHPWord 提供的 TemplateProcessor,它采用在文档上呈现的特定钩子并将其替换为给定的字符串。我遇到的问题是当字符串中出现“&”时 - 文档因缺少“;”而损坏。

我用来清理字符串的函数是

$string = trim(html_entity_decode($string));
$string = strip_tags($string);
$string = trim(preg_replace('/\s+/', ' ', $string));

有谁知道如何转义 ampersant 符号以免文件损坏?

当然:见this HTML Entity chart:

$str = preg_replace( '/&/', '&', $str );

然而,在您的情况下,最好使用 htmlspecialchars:

添加此行
$str = htmlspecialchars( $str );