Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

call to undefined function mb_strimwidth

Months ago I made a short code that uses mb_strimwidth() to exactly fit some text into a table cell, putting dots at the end of a truncated string. Now, after some times, I tried to execute that same code and it went out with this error:

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

I tried to find the mbstring.php file, and when I found the mb_strimwidth() function, I discovered that it is not implemented anymore. How is that possible? But my main question is: how can I get the same result as mb_strimwidth()? I thought to rewrite the function using a loop and mb_strwidth(), but ALL the functions in that mbstring.php file are empty.

like image 682
Yuri Avatar asked Jan 10 '13 09:01

Yuri


4 Answers

All mb_* functions are provided by a PHP extension called Multibyte String, internal name mbstring

You probably don't have the extension active or installed. On most Linux distros you can install the package php-mbstring to install and activate this extension.

Apache needs to be restarted afterwards if you are using mod_php

like image 181
Michel Feldheim Avatar answered Nov 20 '22 17:11

Michel Feldheim


Just got this issue, if you are using linux just install the package php-mbstringand restart Apache.

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

If you are using specific PHP version, you may need to run the following:

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

Replace 7.x by the exact PHP version.

like image 42
Hyder B. Avatar answered Nov 20 '22 17:11

Hyder B.


u need to install php-mbstring package try.

check php version

php -v

then check mbstring already install and enable

php -i | grep mbstring

if not installed run this command

sudo apt-get install php-mbstring

if you are php other version example : 7.1, 7.2, 7.0 based on run command like this :

sudo apt-get install php7.1-mbstring 

if you are using nginx server for run laravel .. then check nginx configration file which version u have loaded in conf file..

go to cd /etc/nginx/sites-available and open your configuration file.. if you are loading php7.2 version in nginx conf file..

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

then u need to install 7.2 mbstring package..

sudo apt-get install php7.2-mbstring 

and restart apache2 server

 sudo service apache2 restart
like image 2
Jignesh Joisar Avatar answered Nov 20 '22 16:11

Jignesh Joisar


if you already installed mbstring then you have to call this extension on php.ini file.

First, detect where is your php-fpm.ini file or php.ini.

run command

php -i | grep php.ini

it returns you path of php.ini file.

for example

/etc/php.ini

then open file with VIM or another editor

vim /etc/php.ini

and then add mbstring extension to php.ini file

extension=mbstring.so;

finally, restart php-fpm

systemctl restart php-fpm
like image 1
Turan Zamanlı Avatar answered Nov 20 '22 18:11

Turan Zamanlı