Распознавание картинки в текст при помощи yandex.cloud

Довелось давече попробовать по распознавать текст при помощи сервиса Vision OCR от Яндекс облако. Результатом родился класс на PHP:

Результатом возвращается json с блоками распознанного текста/таблиц.

PHP: замена команды Eval

В PHP версиях до 7.1, в некоторых скриптах используется команда Eval, позволяющая выполнить переданный на входе текст, как команду PHP. В последующих версия PHP, данная команда помечена как Deprecated. При апргрейде, соответственно часть скриптов перестают работать. Вот моё решение по замене:

P.S. Совсем если честно не понял зачем было удалять эту команду из за «безопасности», если тому кому нужно вполне заменят её подобным костылём как у меня. Моё мнение: любое обновление не должно ломать старый код, исключения — крайние случаи. Этот случай явно не крайний.

Установка PHP 7.4 на RedOS 8.0

Ситуация: после обновления с RedOS 7.3 до RedOS 8.0, обновился и интерпретатор PHP с 7.4. до 8.1, что к сожалению сломало работу сайта на Bitrix. Нужна установка PHP 7.4 на RedOS 8.0

Задача: сделать даунгрейд PHP 8.1 на PHP 7.4

Решение: Штатным образом в RedOS 8.0 отсутствует возможность установки PHP 7.4, Но! так как RedOS по сути своей совместим с RedHat/CentOS, значит возможно использовать сторонние репозитарии http://rpms.remirepo.net.

Создадим в папке /etc/yum.repos.d файл remi.repo с содержимым:

И файл remi-php74.repo:

После чего останется удалить php8:

И установить взамен php 7.4:

После чего можно увидеть результат:

установка PHP 7.4 на RedOS 8.0
установка PHP 7.4 на RedOS 8.0

Таблица в массив на php

Задача: Есть некая очень захламленная сторонними элементами страница в разметке html. Необходимо преобразовать находящуюся на ней таблица в массив данных.

Решение: сначала вычленим «грязное» содержимое таблицы между тегами <tbody></tbody>, затем преобразуем его в DOM документ, а далее уже распарсим его обходами и разложим элементы в массив.

Получилось что-то вроде:

Bitrix: Request is not XHR

В одном из проектов, скрипт парсит сайт на bitrix. С какого то момента, при установке параметров таблицы отдаваемой по ajax, стала выводиться ошибка «Request is not XHR». Быстрый гуглинг решения не дал. Стал кропотливо сравнивать заголовки которые отдаются запросом в браузере и заголовки который отдавал в скрипте. Отличие нашлось относительно быстро, страница на сайте добавляла дополнительный заголовок «Bx-ajax:true». В результате модифицировал скрипт следующим образом:

Сама функция запроса уже устоялась, и при таскании из скрипта в скрипт у меня выглядит так::

Request is not XHR
1 2 3 26