Нужно сделать замену одной строки в DOCX-документе. Например, __test_value__ на "тестовое значение". Как это проще реализовать? Я почитал про DOCX, понял что это архив с XML. И вроде бы, текст самого документа всегда лежит в файлике "word/document.xml". Вроде бы. Думаю вот теперь, может проще сделать так? Разорхивировать file_get_contents str_replace file_put_contents Заархивировать всё обратно Или тут могут быть подводные камни из-за которых документ потом просто не откроется?
Короче это работает, но нельзя использовать никакие символы в переменных. Я сначала хотел сделать как-нибудь так: %SimpleValue% или [[SimpleValue]]. Но в XML эти символы пропадают, непонятно куда. Пробовал также нижнее подчёркивание, типа rrrSimple_Value - в итоге фраза разбивается: Так что придётся использовать CamelCase и какой-нибудь буквенный префикс одинаковый для всех переменных. А вот после вставки спец.символов в XML и зипования в DOCX, Word 2013 открыл этот файл без ошибок и корректно отобразил всю }[_@#!. Ссыкотно всё-таки. Ссыкотно из-за того, что Word может разбить твоё ключевое слово при сохранении, и пока не факт что слитные слова не будут разбиваться. Это будет ясно после откатке на тыще файлах через пару месяцев.
я делал именно так. столкнулся с одной откровенной хуетой, про которую расскажу потом. или [vs] может быть отпишется раньше меня, т.к. он с ней тоже потрахался. Пусть это будет сюрприз. плейсхолдеры я вроде юзал на фигурных скобках.
Отличный у вас форум, ребят. Пусть будет сюрприз, чтобы другой человек потрахался, а мы потом поржем. Может вы тут ещё и спойлеры из Игры Престолов постите и читы для CS раздаёте?
Ну тут есть шайка пидерастов, да. Я не из их числа, но они есть, это факт. Даже среди модеров. Спорное утверждение. Последним достижением был апдейт форума. Nuff said.
Вот я и вступил в какашку. Я не могу генерировать строки таблиц, а у меня тут есть таблица где их разное количество. Пока вставил в воблу на место строк текст "заполняется вручную" и ссылку на php-скрипт, где эта таблица генерируется и выводится.
почему? может надо сравнить два файла, в котором разные таблицы и выяснить по какому принципу их надо добавлять
@denis01 Идея хорошая, но зацени сколько там изменений. https://www.diffnow.com/?report=u4owk Слева файл с такой таблицей: А справа с такой:
[vs], да есть и PHPWord, но я с ней не разобрался, мудрёная штука. Работу надо было сделать по быстрому, к 4 числу. PHPWord умеет добавлять таблицы (сцылко), но я не понял как вообще открыть какой-то файл для изменения. --- Добавлено --- Хотя, что-то нагуглилось. Походу loadTemplate это то что мне надо. Надо будет перевести всё на PHPWord и разобраться с таблицами.
скорее всего да и вот эта функция потом может помочь https://github.com/PHPOffice/PHPWor...ef6d49bf96f453c/src/PhpWord/Template.php#L131