Задать вопрос
  • Какую библиотеку для PHP 8 можно использовать для редактирования метадаты в PDF файлах?

    JastaFly
    @JastaFly Автор вопроса
    Adamos,

    в кривизне исходной PDF, возможно

    Судя по всему Вы правы. Попробовал прогнать файл через консоль, как раз таки на проблемной странице получаю ошибки:
    **** Error reading a content stream. The page may be incomplete.
                   Output may be incorrect.
       **** Error: Form stream has unbalanced q/Q operators (too many q's)
                   Output may be incorrect.
       **** Error reading a content stream. The page may be incomplete.
                   Output may be incorrect.
       **** Error: File did not complete the page properly and may be damaged.
                   Output may be incorrect.

    И итоговый отчёт:
    **** This file had errors that were repaired or ignored.
       **** The file was produced by:
       **** >>>> iLovePDF <<<<
       **** Please notify the author of the software that produced this
       **** file that it does not conform to Adobe's published PDF
       **** specification.
    
       **** The rendered output from this file may be incorrect.
    Написано
  • Какую библиотеку для PHP 8 можно использовать для редактирования метадаты в PDF файлах?

    JastaFly
    @JastaFly Автор вопроса
    Adamos, нашёл на данном ресурсе метод вставки метаданных в PDF, при помощи слияния двух файлов. Команду, для exec():
    gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=output.pdf no_marks.pdf pdfmarks

    взял от туда. В плане вставки метаданных, всё прекрасно работает, но вот обнаружилась проблема, что после генерации из результирующего PDFа, могут пропадать картинки. Не подскажите в чём может быть проблема?
    Написано
  • Какую библиотеку для PHP 8 можно использовать для редактирования метадаты в PDF файлах?

    JastaFly
    @JastaFly Автор вопроса
    Adamos, а нет како-то менее костыльного метода?
    Написано
  • Какую библиотеку для PHP 8 можно использовать для редактирования метадаты в PDF файлах?

    JastaFly
    @JastaFly Автор вопроса
    Adamos как-то не особо понял как через него изменить метаданные в PDF? И вариант с командной строкой не годится, нужна функция либо метод
    Написано
  • Как написать обновление для модуля Битрикс?

    JastaFly
    @JastaFly Автор вопроса
    Михаил Ливач, всё это костыли, на самом деле мою задачу можно решить и множеством других способов, не прибегая к переустановки, просто анализировал как до того делали другие разработчики и они переустанавливали модуль. Но истинные джедаи так не поступают, поэтому я и задумался, а может есть какой-то нативный способ написать апдейт для модуля
    Написано
  • Странное поведение str_replace() при заменах в HTML?

    JastaFly
    @JastaFly Автор вопроса
    Rsa97,

    Но не говорит о том, как именно это делается

    Это уже вопрос квалификации разработчика, для непрограммиста код высокоуровнего ЯПа не понятнее греческого

    Предположим, вам надо добавить небольшое изменение - пропускать ссылки, которые находятся внутри блоков pre и code

    Модифицирую свой код под эту задачу, тут уже вполне проглядывается смысл в либе для прасинга, так как придётся анализировать не является ли ссылка потомком pre или code. Как видите я не догматик который топит за/против регулярок, только потому что где-то об этом услышал, а своего ума понять что и как не хватает. Это всего лишь инструмент и как любой инструмент он хорош для одних задач и плох для других. И всё в большей степени зависит от того в чьих руках он находится, вряд-ли разумно обвинять микроскоп в том что им гвозди забивать неудобно
    Написано
  • Странное поведение str_replace() при заменах в HTML?

    JastaFly
    @JastaFly Автор вопроса
    Rsa97, там название переменной как бы намекает на то что она делает
    Написано
  • Странное поведение str_replace() при заменах в HTML?

    JastaFly
    @JastaFly Автор вопроса

    вы проявили невнимательность в preg_replace_callback. Это и есть проблема, это и будет у вас всегда проблемой, если будете парсить HTML регулярками

    Вы вообще можете в причины следственные связи?! То есть у меня проблемы с ньюансами работы функции preg_replace_callback(), не с регуляркой. Регулярка которую я написал всё прекрасно находит! Каким образом вы из этой истории сделали вывод о проблемности регулярок?!

    А насчёт того, что я вам посоветовал регулярку после обработки парсером, так это потому, что это как раз и место для регулярок: одна типовая строчка. Тут не запутаешься

    О чём Вы?! Мой итоговый код выглядит так:
    $regularUrlPattern = '/(https:\/\/[\w_-]+(?:(?:\.[\w_-]+)+)[\w.,@?^=%&:\/~+#-]*[\w][ ]{1,}\/)/';
    $detailTextWithoutSpaces = preg_replace_callback($regularUrlPattern, 'self::deleteSpaces', $detailText);
    
      private static function deleteSpaces($match)
        {
            return str_replace(' ', '', $match[0]);
        }

    Что Вам здесь в 6 строчках кода не понятно?! А сколько строк займёт предлагаемая вами альтернатива с либой для парсинга, циклами, условиями и регуляркой?!
    Написано
  • Как написать обновление для модуля Битрикс?

    JastaFly
    @JastaFly Автор вопроса
    Сергей, если бы всё было так просто. Дело в том что модуль копирует некоторые свои файлы в папку ядра при установке, так вот мне нужно докинуть туда ещё файлов, это легко сделать немного дописав инсталлер, но перед этим придётся удалить модуль, что повлечёт за собой ряд нежелательных сайдэффектов. Поэтому-то я и спрашиваю как написать обновление для модуля, в котором я смогу выполнить все необходимые мне действия, не прибегая к переустановки
    Написано
  • Странное поведение str_replace() при заменах в HTML?

    JastaFly
    @JastaFly Автор вопроса
    Александр Аксентьев, ну это-же какая-то софистика пошла. Мы всё таки инженеры, а не юристы, чтобы к запятым придираться, так что давайте по сути. На хрена мне использовать целый парсер когда просто требуется найти урлы по определённому шаблону?
    Написано
  • Странное поведение str_replace() при заменах в HTML?

    JastaFly
    @JastaFly Автор вопроса
    Александр Аксентьев,

    json парсить регулярками

    А прикол в том что мой вопрос и не касается темы парсинга! Мне просто нужно было найти в HTML, ссылки по определённому паттерну и всё. На хрена мне для этого целый парсер? Вас спроисли о том как кекс испечь, а Вы зачем-то начали рассказывать как открыть пекарню

    через запросы по селекторам. Как в js/css примерно.

    Как по селектору мне найти битые ссылки в HTML?

    вы пришли сюда с регуляркой потому что не осилили её использовать

    Вы русский язык буква читать уметь?! Вот цитата из топика:

    Совпадения по регулярке в $match, отлично находятся

    то есть проблем с регуляркой у меня не было, она прекрасно работала, я просто проявил невнимательность при использование функции preg_replace_callback(). О чём Вы вообще?!

    сравните с кодом сверху который я отправлял

    Лично для мне наоборот странно выглядит велосипед из множества строк кода с циклами и вложенными в них условиями, вместо одной строчки с регуляркой
    Виктор Кожухарь,

    спарсить HTML регулярками, но зачем оно нам надо?

    Ей богу не знаю, зачем оно Вам надо, мой вопрос парсинга HTML, не касается

    При помощи парсера, что вам предложили, выбираете все ссылки, которые хотите проверить, проверяете их атрибут href на вшивость, и заменяете этот атрибут на корректное значение. Потом сохраняете весь DOM. Ктати, вот тут, при проверке конкретной ссылки, если не терпится, можно использовать регулярку, ведь это просто одна строчка урла

    Короче вместо одной строчки кода с регуляркой, Вы предлагаете соорудить целый космический шатл-субмарину из либы для парсинга HTML, циклов, условий...... и в конце всё равно использовать регулярку чтобы не усложнять и без того громоздкую конструкцию. Да Вы просто сумрачный гений инженерной мысли!
    Написано
  • Странное поведение str_replace() при заменах в HTML?

    JastaFly
    @JastaFly Автор вопроса
    IvanU7n, функция при этом всё так-же должна быть статической. Верно?
    Написано
  • Странное поведение str_replace() при заменах в HTML?

    JastaFly
    @JastaFly Автор вопроса
    Виктор Кожухарь, допустим, но продублирую тут вопрос из комментария выше:

    как мне без регулярок найти в паре сотне HTML-ек различные битые ссылки с пробелами на конце?

    Плюс можете подробнее расписать почему нельзя использовать регулярки для парсинга HTML?
    Написано
  • Странное поведение str_replace() при заменах в HTML?

    JastaFly
    @JastaFly Автор вопроса
    Александр Аксентьев, в переводе на программистский это называется: "переизобретением велосипеда"
    Написано
  • Странное поведение str_replace() при заменах в HTML?

    JastaFly
    @JastaFly Автор вопроса
    @IvanU7n

    ругими словами нужно возвращать исправленную ссылку

    Спасибо. Совсем глаз замылился, проблема была реально в возвращаемом значении

    вызовы вида 'self::function' задеприкейчены в PHP 8.2:

    У меня 8.1, так что пока прокатит)
    А как тогда быть если нужно вызвать собственный метод класса в версиях 8.2 и выше?!
    Написано
  • Как сохранить HTML код в XML?

    JastaFly
    @JastaFly Автор вопроса
    Adamos вариант с кодированием хренов из-за того что данные придётся восстанавливать в исходное состояние а при кодировании/декодирование исходная вёрстка может пострадать. Варина с CDATA проще, а значит лучше
    Написано
  • Странное поведение str_replace() при заменах в HTML?

    JastaFly
    @JastaFly Автор вопроса
    Rsa97, и как мне без регулярок найти в паре сотне HTML-ек различные битые ссылки с пробелами на конце?
    Написано
  • Странное поведение str_replace() при заменах в HTML?

    JastaFly
    @JastaFly Автор вопроса
    IvanU7n да знаю это. Убрал массивы из кода чтобы не отвлекать лишними деталями, в оригинале всё это разумеется было учтено:
    private static function deleteSpaces($match) {
            return str_replace($match[0], str_replace(' ', '', $match[0]), self::$currentText);
        }
    Написано
  • Как сохранить HTML код в XML?

    JastaFly
    @JastaFly Автор вопроса
    Adamos, Да в том-то и прикол что мне вообще не нужно чтобы он валидировался, просто сохранить, потом извлечь, желательно серьёзных изменений
    Написано
  • Как сохранить HTML код в XML?

    JastaFly
    @JastaFly Автор вопроса
    Adamos, пробовал использовать html_entities_decode():
    $xml->addChild('text', html_entity_decode($myHtmlCode));

    В итоге получил вторую указанную ошибку:
    Validation error : EntityRef: expecting ';'
    Написано