Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Call to undefined function Bitrix\Main\IO\mb_substr

00 голосов
1
После обновления версии PHP или смены хостинга появляется ошибка

Call to undefined function Bitrix\Main\IO\mb_substr
in .../bitrix/modules/main/lib/io/path.php on line 77
Call Stack ...
 

Что делать в такой ситуации?
спросил 16 Июль, 23 от root (25,590 баллов)

1 Ответ

00 голосов
 
Лучший ответ

Если открыть исходный файл с ошибкой, то увидим совсем безобидные строки -

          $pathTmp = rtrim($pathTmp, $tailPattern);
  
-         if (mb_substr($path, 0, 1) === "/" && mb_substr($pathTmp, 0, 1) !== "/")
              $pathTmp = "/".$pathTmp;
  
          if ($pathTmp === '') 
              $pathTmp = "/";
То есть, в PHP отсутствует системная функция mb_substr... И что делать?
А делать вот что - надо установить на хостинге расширение mb, в котором реализованы функции работы с мультибайтовыми строками mb*. Как это сделать - зависит от дистрибутива Linux и версии вашего PHP.
На примере Debian - есть вот такие пакеты
php7.4-mbstring - MBSTRING module for PHP
php-mbstring - MBSTRING module for PHP [default]
php5.6-mbstring - MBSTRING module for PHP
php7.0-mbstring - MBSTRING module for PHP
php7.1-mbstring - MBSTRING module for PHP
php7.2-mbstring - MBSTRING module for PHP
php7.3-mbstring - MBSTRING module for PHP
php8.0-mbstring - MBSTRING module for PHP
php8.1-mbstring - MBSTRING module for PHP
php8.2-mbstring - MBSTRING module for PHP
То есть, если у вас PHP 8.2 -  то надо выполнить команды
 
sudo apt-get update && sudo apt-get install php8.2-mbstring && sudo service apache2 restart

 

ответил 16 Июль, 23 от root (25,590 баллов)

Похожие вопросы

0 голосов
4 ответов
спросил 01 Янв, 14 от Kiriel (2,010 баллов)
0 голосов
5 ответов
спросил 26 Окт, 13 от Assistan (120 баллов)
0 голосов
1 ответ
0 голосов
0 ответов
0 голосов
0 ответов
спросил 24 Дек, 13 от ebs_di (120 баллов)