Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP missing mb_strpos function?

Tags:

php

apache

I get this error:

PHP Fatal error:  Call to undefined function mb_strpos() in /my/file.php

Which is odd because mb_strpos() was introduced in PHP 4, and I'm running PHP 5.3.3

$ php -v
PHP 5.3.3 (cli) (built: Feb 22 2012 19:38:14) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Anybody else run into something like this and know how to fix it? I searched and I can't figure it out.

PS. I'm running centOS 5.

like image 280
JKirchartz Avatar asked Mar 13 '12 21:03

JKirchartz


4 Answers

MBString is not a default extension in PHP and you have to install it if you are running linux try

yum install  php-mbstring.x86_64 # for RedHat derivative systems

as a root user or

apt-get install php-mbstring.x86_64 # for Debian derivative systems

on windows you have to edit php.ini to use the extension dll library

Note: mb_strpos still supported in PHP 5

like image 196
Muhannad A.Alhariri Avatar answered Nov 19 '22 05:11

Muhannad A.Alhariri


I would guess that your version of PHP wasn't built with the "--enable-mbstring" option.

You can check with the phpinfo() function. There should be a "mbstring" section. Mine has this:

mbstring

Multibyte Support   enabled
Multibyte string engine libmbfl
HTTP input encoding translation disabled
like image 24
jasonlfunk Avatar answered Nov 19 '22 06:11

jasonlfunk


sounds like it's simply not installed. please take a look at the documentation:

mbstring is a non-default extension. This means it is not enabled by default. You must explicitly enable the module with the configure option. [...]

like image 1
oezi Avatar answered Nov 19 '22 05:11

oezi


You need to find out which PHP your server is using by placing a info.php with this code:

<?php phpinfo(); ?>

Then you need to download php-mbstring for this version, e.g. if you have PHP 8.0.15 then you need to install it like this:

sudo apt-get install php8.0-mbstring

Then restart the apache2 service:

sudo service apache2 restart
like image 1
Black Avatar answered Nov 19 '22 06:11

Black