DOCX формат это обычный ZIP архив, который можно открыть любым архиватором.
Все содержимое документы находиться в файле word/document.xml. Открываем файл в Word’e, добавляем пару переменных в документ, например: {NAME}, {SURNAME}. И сохраняем документ.
Для работы с Zip архивом в PHP я использую ZipArchive.
<?php //Указываем путь до подготовленного документа $docxFile = '/document.docx'; //Список параметров $params = array( '{NAME}' => 'Anatoliy', '{SURNAME}' => 'Skornyakov' ); if (!file_exists($docxFile)) { die('File not found.'); } $zip = new ZipArchive(); if (!$zip->open($docxFile)) { die('File not open.'); } $documentXml = $zip->getFromName('word/document.xml'); //Заменяем все найденные переменные в файле на значения $documentXml = str_replace(array_keys($params), array_values($params), $documentXml); $zip->deleteName('word/document.xml'); $zip->addFromString('word/document.xml', $documentXml); //Закрываем и сохраняем архив $zip->close();