调用未定义的函数 mb_strimwidth

Posted

技术标签:

【中文标题】调用未定义的函数 mb_strimwidth【英文标题】:call to undefined function mb_strimwidth 【发布时间】:2012-12-24 15:56:57 【问题描述】:

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

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

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

【问题讨论】:

你的意思是绿色的勾? 啊好的。对不起,我不知道。我现在就去做 【参考方案1】:

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

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

如果你使用 mod_php,需要重启 Apache

【讨论】:

好的,这解决了我的问题。但我不明白自上次以来发生了什么,当它正常工作时...... 您可能更新了 php,这是特定于发行版的。例如安装 php-54 包并删除 php 包。 我在我的机器上安装了 php-mbstring 并重新启动了 apache。之后我检查了我的 phpinfo() 但在那里找不到 php-mbstring。我仍然遇到同样的问题。有什么帮助吗?【参考方案2】:

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

用准确的 PHP 版本替换 7.x

【讨论】:

【参考方案3】:

你需要安装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 .. 然后检查你在 conf 文件中加载了哪个版本的 nginx 配置文件..

转到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

【讨论】:

【参考方案4】:

如果你已经安装了 mbstring,那么你必须在 php.ini 文件中调用这个扩展。

首先,检测你的 php-fpm.ini 文件或 php.ini 文件在哪里。

运行命令

php -i | grep php.ini

它会返回 php.ini 文件的路径。

例如

/etc/php.ini

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

vim /etc/php.ini

然后在 php.ini 文件中添加 mbstring 扩展名

extension=mbstring.so;

最后,重启php-fpm

systemctl restart php-fpm

【讨论】:

以上是关于调用未定义的函数 mb_strimwidth的主要内容,如果未能解决你的问题,请参考以下文章

数据流 - 未调用函数 - 错误 - 未定义名称

辅助函数未加载 laravel 5 - 调用未定义函数

调用未定义函数 Mpdf\\Mpdf()

未捕获的错误:调用未定义的函数 have_post()

VB中子程序或函数未定义是啥意思

Codeigniter:调用未定义的函数(模型)