Я заменяю простые текстовые переменные на setValue('var1','value'), а некоторые сложные блоки, содержащие таблицы, на setComplexBlock('var2', $table) ( с $table, являющимся экземпляром PhpOffice\PhpWord\Element\Table). Если я разделяю свои значения пробелом или разрывом строки, все работает нормально. Теперь, если я напишу что-то вроде
${var1}${var2}${var3} в своем шаблоне и попытаюсь заменить var2 сложным блоком ( table в данном случае), то все соседние переменные просто исчезают, а var1/var3, которые были заменены каким-либо текстом, просто стираются. Это еще сложнее, потому что теперь допустим, что я поместил это в свой шаблон: {var1}${var2}${var3}${var4} и заменил var2 и var4 со сложным блоком (таблицей), тогда var1 и var3 стираются, и я получаю не два массива, а только один, который объединение var2 и var4.
Для получения дополнительной информации:
- Я не ставлю пробелов между переменными, потому что документ после замен должен быть идеальным, без нежелательных разрывов строк и пробелов.
- Замены сложных блоков происходят в конце скрипт, а это означает, что мои простые текстовые переменные уже заменены, а замена сложного блока в начале не решает проблему.
Альтернативой может быть добавление разрывов строк или пробелов между переменными в моем шаблоне и их удаление, если переменная пуста, но я ничего не нашел о том, как это сделать, в их документации или в Интернете. Буду рад любым советам!
Подробнее здесь: https://stackoverflow.com/questions/786 ... p-or-space