php 调用未定义的函数mb_strimwidth

prdp8dxp  于 2023-08-02  发布在  PHP
关注(0)|答案(5)|浏览(137)

几个月前,我编写了一个简短的代码,使用mb_strimwidth()将一些文本精确地放入表格单元格,在截断字符串的末尾加上点。现在,过了一段时间,我试图执行相同的代码,它出现了这样的错误:

Fatal error: Call to undefined function mb_strimwidth() in ...

字符串
我试图找到mbstring.php文件,当我找到mb_strimwidth()函数时,我发现它不再实现了。这怎么可能?但我的主要问题是:如何得到与mb_strimwidth()相同的结果?我想使用循环和mb_strwidth()重写函数,但mbstring.php文件中的所有函数都是空的。

wgx48brx

wgx48brx1#

所有的mb_*函数都由一个名为Multibyte String的PHP扩展提供,内部名称为mbstring
您可能没有激活或安装扩展。在大多数Linux发行版上,您可以安装php-mbstring包来安装和激活此扩展。
如果你使用的是mod_php,那么之后需要重启Apache

enyaitl3

enyaitl32#

刚刚得到这个问题,如果你使用的是linux,只需安装php-mbstring包并重新启动Apache。

sudo apt-get install php-mbstring
sudo service apache2 restart

字符串
如果您使用的是特定的PHP版本,您可能需要运行以下命令:

sudo apt-get install php7.x-mbstring
sudo service apache2 restart


7.x替换为准确的PHP版本。

55ooxyrt

55ooxyrt3#

你需要安装php-mbstring包试试。
检查php版本

php -v

字符串
然后检查mbstring已经安装并启用

php -i | grep mbstring


如果未安装,请运行此命令

sudo apt-get install php-mbstring


如果您是php其他版本示例:7.1、7.2、7.0基于如下run命令:

sudo apt-get install php7.1-mbstring


如果你正在使用nginx服务器运行laravel..然后检查nginx配置文件,你在conf文件中加载了哪个版本。
转到cd /etc/nginx/sites-available并打开配置文件。如果你正在nginx conf文件中加载php7.2版本..

fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;

然后你需要安装7.2mbstring包..

sudo apt-get install php7.2-mbstring


然后重启apache 2服务器

sudo service apache2 restart

1cklez4t

1cklez4t4#

如果你已经安装了mbstring,那么你必须在php.ini文件上调用这个扩展。
首先,检测php-fpm.ini文件或php.ini的位置。
运行命令

php -i | grep php.ini

字符串
返回php.ini文件的路径。
例如

/etc/php.ini


然后用VIM或其他编辑器打开文件

vim /etc/php.ini


然后将mbstring扩展名添加到php.ini文件

extension=mbstring.so;


最后,重启php-fpm

systemctl restart php-fpm

jexiocij

jexiocij5#

此错误主要是由于缺少名为multibyte string或简称为mbstring的包引起的。
首先检查当前设置的是哪个php.ini;

php -i | grep php.ini

字符串
然后检查是否安装了mbstring;

php -i | grep php-mbstring


如果它没有返回任何内容,则安装它;

sudo apt install php-mbstring


或者你可以根据你的工作站上安装的php版本来安装

sudo apt install php8.2-mbstring


现在验证mbstring是否已安装;

php -i | grep php-mbstring


它应该返回一些信息。

相关问题