使用PHPWord查找和替换文本

Som*_*one 12 phpword

是否可以使用PHPWord对Word文档中的文本进行简单的查找和替换?从我所看到的,你可以得到的最接近的只是添加文本到一个部分,你不能操纵现有的文本除了字体等.如果没有,有什么免费的,我可以用来做到这一点?

mai*_*guy 5

不,PHPWord仅用于创建docx文件。

无论如何,docx文件只是zip容器中xml文件的集合。通常,您需要做的是:

  1. 将xxx.docx重命名为xxx.zip
  2. 解压缩到一个临时文件夹
  3. 在document.xml中的temporary_folder / word中,其中包含文档的所有文本(页眉和页脚除外)
  4. 替换您需要替换的东西
  5. 保存document.xml
  6. 将整个临时文件夹压缩回xxx.docx

请注意,Word倾向于将单词分成多个部分,具体取决于在保存点对文档所做的操作。任何单词的中间可能都有书签,语言更改,拼写检查或字符格式标签。

祝您找到安全的方法来解决此问题。


小智 5

安装

composer require phpoffice/phpword
Run Code Online (Sandbox Code Playgroud)

PHP代码

include 'vendor/autoload.php';
$templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor('test2.docx');
$templateProcessor->setValue('name', 'myvar');
$templateProcessor->saveAs('./xx.docx');
Run Code Online (Sandbox Code Playgroud)

我的test.docx只是这个词: ${name}