2012-03-13 2 views
6

Я получаю эту ошибку:PHP отсутствует функция mb_strpos?

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

Что странно, потому что mb_strpos() была введена в PHP 4, и я бегу 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 

Кто-нибудь еще бежать во что-то вроде этого и знать как это исправить? Я искал, и я не могу понять.

PS. Я бегу centOS 5.

+3

(Может быть, он был построен без поддержки unicode/multibyte?) –

+1

Включили ли вы расширение mbstring? Что говорит '' phpinfo() ''? Посмотрите на http://ch2.php.net/mbstring для получения дополнительной информации. – ckruse

+0

Вы в пространстве имен? Возможно, вам придется префикс функции с помощью \. – Rijk

ответ

13

MBstring не расширение по умолчанию в PHP, и вы должны установить его , если вы работаете в Linux пытаются

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

как пользователь корневой или

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

на окнах вы должны редактировать php.ini для использования библиотеки расширений dll

Примечание: mb_strpos по-прежнему поддерживается в PHP 5

+1

-1, вы предполагаете, что каждый использует тот же дистрибутив, что и вы, –

+0

это всего лишь предложение для решения, я не предполагаю, что вы называете !!! –

+0

, вы должны быть более конкретными в отношении «linux» - там есть дюжина дистрибутивов Linux, и только немногие используют 'yum' в качестве rpm-package-manager - на ubuntu. например, это будет 'agt-get'. | EDIT: и никто не должен «!!!! 111oneeleven», поскольку он груб и мальчишеский. – oezi

1

Я бы предположил, что ваша версия PHP не была построена с опцией «--enable-mbstring».

Вы можете проверить с помощью функции phpinfo(). Там должен быть раздел «mbstring». Мой имеет следующее:

mbstring 

Multibyte Support enabled 
Multibyte string engine libmbfl 
HTTP input encoding translation disabled 
1

звучит, как будто он просто не установлен. пожалуйста, посмотрите на 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. [...]

-1

Это основной PHP функция. Кажется, ваш веб-хост не имеет установленного расширения PHP mbstring. Проверьте свой phpinfo(); и ищите mbstring в нем.