Генерация docx средствами php

345
28 мая 2017, 22:55

Стоит следующая задача: Существует шаблон док-та в формате docx, в котором есть маркеры (например,{{dl.name.no-mod.req}} ). Необходимо вместо маркеров подставить рассчитанные параметры.

После того, как я разархивирую docx, в исходном xml часть подобных маркеров разбивается различными тегами:

<w:p>
        <w:pPr>
            <w:pStyle w:val="Normal"/>
            <w:rPr></w:rPr>
        </w:pPr>
        <w:r>
            <w:rPr></w:rPr>
            <w:t>«{{dl.name.</w:t>
        </w:r>
        <w:r>
            <w:rPr>
                <w:lang w:val="en-US"/>
            </w:rPr>
            <w:t>no</w:t>
        </w:r>
        <w:r>
            <w:rPr></w:rPr>
            <w:t>-</w:t>
        </w:r>
        <w:r>
            <w:rPr>
                <w:lang w:val="en-US"/>
            </w:rPr>
            <w:t>mod</w:t>
        </w:r>
        <w:r>
            <w:rPr></w:rPr>
            <w:t>.</w:t>
        </w:r>
        <w:r>
            <w:rPr>
                <w:lang w:val="en-US"/>
            </w:rPr>
            <w:t>req</w:t>
        </w:r>
        <w:r>
            <w:rPr></w:rPr>
            <w:t xml:space="preserve">}}»</w:t>
        </w:r>
    </w:p>

Соответственно, моё регулярное выражение их не находит.

Из-за чего происходит разбиение в исходном шаблоне? Есть ли способ избежать подобного? Возможно, стоит, изменить формат маркеров? Или же нужно как-то по иначе работать с данными (сейчас, работаю с исходным xml, как с обычной строкой - ищу все вхождения подобных маркеров, рассчитываю их значения, после запаковываю обратно в docx архив)?

READ ALSO
Скрипт добавляет запись в БД дважды

Скрипт добавляет запись в БД дважды

Суть: храню номер последнего рецепта в файле lasttxt, в скрипте его получаю и пока не пойдут 404 ошибки (50 штук) парсить каждый рецепт и добавлять...

351
Вызов С++ функции из ассемблера

Вызов С++ функции из ассемблера

Здравствуйте, есть массив в ASM(уже инициализированный), вызывается функция С++ которая сортирует и возвращает уже отсортированный массивНаписал...

472
Алгоритм простого числа

Алгоритм простого числа

Может кто нибудь подсказать, что не так с этим алгоритмом? Проблема в том, что при запуске некоторые числа отображаются в командной строке...

203
Двухмерный массив как параметр функции c++

Двухмерный массив как параметр функции c++

Как передать двухмерный массив в функцию как параметр? пытался сделать ссылку, но выдает ошибкуКод программы ниже

368