PHPWord: заменить переменные, не разделенные переходом на строку или пробеломPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 PHPWord: заменить переменные, не разделенные переходом на строку или пробелом

Сообщение Anonymous »

Я пытаюсь заменить в документе несколько переменных, которые не разделены пробелом или разрывом строки, на phpoffice/phpword, используя класс TemplateProcessor.
Я заменяю простые текстовые переменные на 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»