[I128-2382] PHP Fatal error: Uncaught TypeError: substr(): Argument #1 ($string) must be of type string, array given in modules/Format/__call/Fmt.inc:81


НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.1.2 >> [I128-2382] PHP Fatal error: Uncaught TypeError: substr(): Argument #1 ($string) must be of type string, array given in modules/Format/__call/Fmt.inc:81📄 Скачать в DOCX


Тип Версия Статус Приоритет Исполнитель
⚙️ Исправление ошибок 2026.1.2 🔘 Завершено Средний Галина Арноси

Компоненты: ИРБИС 128. Модуль Format - Подсистема форматирования записей ИРБИС 128

Завершено: 05.06.2026 11:21

Проблема: В методе Exec класса fncallFormatFmt (файл modules/Format/__call/Fmt.inc) происходит проверка результата форматирования на наличие префикса </>, который сигнализирует о необходимости обработки BB-кодов. Однако некоторые типы форматов (например, showgallery) могут возвращать результат в виде массива, а не строки. В PHP 8.0 и выше передача массива в функцию substr() вызывает фатальную ошибку TypeError: substr(): Argument #1 ($string) must be of type string, array given, что приводит к аварийному завершению работы скрипта.

Решение: В логику обработки результата добавлена проверка is_array($res) == false. Теперь вызов substr() и последующее применение BB-кодов выполняются только в том случае, если переменная $res не является массивом.

-

PHP Fatal error: Uncaught TypeError: substr(): Argument #1 ($string) must be of type string, array given in /data/www/html/modules/Format/__call/Fmt.inc:81 при запросе формата showgallery