PHP и каноникализация C14N

Цель канонизации — обеспечить, чтобы для одних и тех же данных на уровне XML не менялся хэш, необходимый для проверки подписи.  Т.е. удаляются лишние пробелы, символы и т.д. У себя реализовал примерно так:

WordPress: просмотр pdf с параметром FitH

В WordPress есть возможность разместить на странице pdf файл в контейнере object, при помощи стандартного блока «Файл». Но есть нюанс — из настраиваемых параметров размера — только высота в пикселях. Ширина автоматически при просмотре подразумевается 100%.. Соответственно файл встраивается в страницу с автоматическим параметром отображения (т.е. не на всю ширину страницы). Для того чтобы страница растянулась на всю ширину экрана, нужно добавить параметр view, например чтобы было примерно так:

Но, к сожалению после редактирования html кода блока, он ломается. Поэтому одним из решений является написание плагина, который ищет на страницах размещенный pdf файл, и добавляет ему соответствующий параметр. Вот как это реализовано у меня:

Добавляем веб хук:

Функция:

PHP Curl: Segmentation fault

Столкнулся со странной ошибкой на Astra Linux, а именно если вызывать:

То получаем ошибку:

Хотя в любом другом дистрибутиве получаю стандартное:

ошибка сегментирования

Начал рыть….долго и упорно… искал разницу между установленными версиями curl. И единственное что по большому счёту отличало версию Astra Linux — поддержка сертификатов шифрования ГОСТ. А сайт Госуслуг именно их и использует. Причем шифрование на этом сайте версии 1.3. А что если попробовать принудительно попросить curl именно это шифрование? И в правду заработало:

На PHP аналог выставления данного флага:

Хотя конечно остаются вопрос, почему просто падает не показывая почему..

PHP и его странная математика

Столкнулся с очень чудесной ошибкой на PHP:

Что вы ожидаете увидеть в выводе? 115? А вот и нет. Если echo выведет 115, то var_dump выведет 114.99999

Что не так с float?

Тип float в языке PHP, как и его “родственник” тип double, вовсе не предназначен для точного представления десятичных дробей. Всё что мы записали в float, хранится в приближенном значении, с некоторой погрешностью.

Решение: в виду того что в PHP это считается фичей, а не багом, то для точной работы с математикой нужно использовать модуль bcmath. Ну или использовать округления до нужной точности

P.S. Не первый раз уже вспотыкаюсь об это

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

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

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

1 2 3 4 28