17

几个月前,我编写了一个简短的代码,用于mb_strimwidth()将一些文本完全放入表格单元格中,将点放在截断字符串的末尾。现在,一段时间后,我尝试执行相同的代码,但出现以下错误:

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

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

4

4 回答 4

29

所有mb_*函数都由名为 Multibyte String 的 PHP 扩展提供,内部名称为mbstring

您可能没有激活或安装扩展。在大多数 Linux 发行版上,您可以安装软件包php-mbstring来安装和激活此扩展。

如果您使用的是 mod_php,则需要在之后重新启动 Apache

于 2013-01-10T10:02:27.147 回答
13

刚遇到这个问题,如果您使用的是 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 版本。

于 2017-08-26T19:51:24.423 回答
1

你需要安装php-mbstring包试试。

检查php版本

php -v

然后检查 mbstring 是否已安装并启用

php -i | grep mbstring

如果未安装运行此命令

sudo apt-get install php-mbstring

如果您是php 其他版本 示例:7.1、7.2、7.0基于这样的运行命令:

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.2 mbstring 包..

sudo apt-get install php7.2-mbstring 

重新启动apache2 服务器

 sudo service apache2 restart
于 2019-02-25T05:59:31.873 回答
1

如果你已经安装了 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
于 2019-05-06T10:54:07.087 回答