PHPWord: не работает замена переменных

Решил я как-то делать отчеты в doc. Несколько минут гугления вывели меня на неплохую библиотечку: PHPWord. Неплохая, с достаточным количеством примеров, но вот беда – не делает замену. Танцы с гуглом вокруг шаблона особого результата не давали: stackoverflow.com подсказывал непонятные глупости.

К счастью, методы терморектального дебага ещё никто не отменял. Поковыряв побайтно исходный документ, я обнаружил, что MS Word имеет пренеприятнейшую особенность: малейшее исправление в середине слова он обрамляет большим количеством служебных тегов. Конечно, это дает неслабую гибкость при создании документов, но мне это явно мешало. Но итогом всех этих действий стал алгоритм создания шаблона для PHPWord:

  1. Забыть на время о привычке ставить скобки, а затем возвращаться, чтобы установить их содержимое.  ${Value1}
  2. Переменные для замены мы пишем по символам, слева направо.
  3. Если требуется что-то исправить: стираем все слово (в том числе и скобки и знак доллара) и пишем все заново.

Вот в общем-то и все. Если следовать этим простым правилам при создании шаблона, то PHPWord будет великолепно справляться со своей работой и радовать вас.

blog comments powered by Disqus