致命错误:调用未定义的函数 mb_substr()

Fatal error: Call to undefined function mb_substr()

提问人:Blahwhore 提问时间:12/26/2012 最后编辑:LeighBlahwhore 更新时间:2/22/2023 访问量:71654

问:

我想看看你对我目前遇到的这个问题的意见。 事实证明:

 <?php
$disc_t=$name; 
  if(strlen($disc_t)<=15)
  {
   $name_now=mb_substr( strip_tags($disc_t), 0, 10 ).'';
  }
  else
  {
   $name_now=mb_substr( strip_tags($disc_t), 0, 10).'...';
  }
?>

不知何故在网站上给了我一个错误,错误显示:

Fatal error: Call to undefined function mb_substr() in /home/(website)/public_html/index.php on line 308

我不太明白他们的意思,这是PHP版本错误吗? 我目前正在使用 PHP 5.3.19mb_substr

PHP 字符串

评论

2赞 12/26/2012
您的 PHP 没有启用 MBRynch。php.net/manual/en/mbstring.installation.php
0赞 jeremy 12/26/2012
您的服务器可能没有 mb_str 模块
0赞 Blahwhore 12/26/2012
如何启用此模块?我是服务器配置的新手。
0赞 Popnoodles 12/26/2012
你能编辑你的 php.ini 文件吗?如果你不能回答这个问题,你在做什么?
0赞 Blahwhore 12/26/2012
我想我应该能够在我的网站上编辑 php.ini,但是我是否通过根 cpanel 启用它?还是位于我的帐户列表中的 cPanel?(例如:/home/blahwhore/public_html/)

答:

36赞 Niet the Dark Absol 12/26/2012 #1

mb_substr() 是 substr() 的多字节安全版本,这意味着它使用字符而不是字节。这在 UTF-8 中最为明显,其中许多字符由两个或多个字节表示。

根据安装说明,不是内置扩展。您必须通过拥有适当的文件并正确配置 PHP 来启用它。一些信息可以在提供的链接中找到,您的虚拟主机应该能够帮助您完成其余的工作。mbstring

要查看是否安装了 mbstring,请执行以下操作:php -m | grep mbstring

对于 Linux,请使用

sudo apt-get install php-mbstring

评论

0赞 Blahwhore 12/26/2012
你知道我在哪里下载文件以便我可以安装mb_substr吗?还是我只是运行命令?
2赞 MacroMan 1/25/2018
您不应该安装,因为即使 PHP 升级到 7.1 及更高版本,它仍将保持在 7.0 版本。您应该改为安装php7.0-mbstringphp-mbstring
0赞 Greg Wozniak 8/16/2019
非常安全,除非您将其推送到禁用了此模块的 prod,否则它会使应用程序崩溃:)
0赞 Niet the Dark Absol 8/16/2019
@GregWoz 是的,但这就是部署测试的目的:p
0赞 Greg Wozniak 8/19/2019
是的,如果一个人没有大型遗留系统来修复=)
-2赞 root 12/26/2012 #2

该错误告诉您,您正在尝试使用一个名为 mb_substr 的函数,该函数不存在。

也许您可以使用 substr 函数 http://php.net/manual/en/function.substr.php 来获得相同的结果。substr(strip_tags($disc_t), 0, 10) 将返回 strip_tags($disc_t) 结果的前十个字符。

18赞 Sverri M. Olsen 12/26/2012 #3

把它扔到终端里:

php -m | grep mb

如果出现,那么它应该可以工作。mbstring

评论

1赞 Blahwhore 12/26/2012
我看到设置为 OFFmbstring.encoding_translation
8赞 Sverri M. Olsen 12/26/2012
查看您的文件。搜索并浏览扩展列表。如果有一个带有名称的扩展,则应安装该扩展。如果该行被注释掉(前面有一个),则它不会启用......删除 ,然后重新启动 Apache(或您正在使用的任何服务器)。php.iniextension=mbstring;;
0赞 Blahwhore 7/30/2013
问题解决了,原来我没有像你提到的那样启用该选项。
2赞 Pt. Raman Sharma 12/16/2015 #4

如果您具有 root 访问权限,则可以使用 WHM 面板或使用命令行对其进行配置。我会让您知道如何使用 WHM Panel 来做到这一点。
1. 使用 Root 用户
2 登录您的 WHM。转到 Easyapache
3。转到之前保存的配置
4。单击“开始基于配置文件进行自定义”。
5.不要更改apache和php版本,只需单击下一步即可。
6. 单击 php 配置
7 底部的详尽选项列表。选中 MBString 选项
8 附近的复选框。保存并构建
9.如果需要一段时间,请不要关闭浏览器窗口。要有耐心。
大功告成!!

0赞 Md. Zahangir Alam 2/22/2023 #5

通过在 Red Hat Linux 8 中执行以下软件包,此问题已得到解决。

dnf install php-mbstring