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

Рад*_*лов 1 regex string escaping phpword phpoffice

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

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

$string = trim(html_entity_decode($string));
$string = strip_tags($string);
$string = trim(preg_replace('/\s+/', ' ', $string));
Run Code Online (Sandbox Code Playgroud)

有谁知道如何转义 ampersant 符号,这样文件就不会被损坏?

Ken*_*ney 5

当然:请参阅此 HTML 实体图表

$str = preg_replace( '/&/', '&', $str );
Run Code Online (Sandbox Code Playgroud)

但是,就您而言,最好使用htmlspecialchars添加此行:

$str = htmlspecialchars( $str );
Run Code Online (Sandbox Code Playgroud)