2012-03-13 35 views
6

tôi nhận được lỗi này:PHP thiếu chức năng mb_strpos?

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

Đó là kỳ quặc vì mb_strpos() đã được giới thiệu trong PHP 4, và tôi đang chạy 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 

Bất kỳ ai khác chạy vào một cái gì đó như thế này và biết làm thế nào để sửa chữa nó? Tôi đã tìm kiếm và tôi không thể tìm ra.

PS. Tôi đang chạy CentOS 5.

+3

(Có thể nó được xây dựng mà không cần hỗ trợ unicode/multibyte?) –

+1

Bạn có bao gồm phần mở rộng mbstring không? '' Phpinfo() '' nói gì? Hãy xem http://ch2.php.net/mbstring để biết thêm thông tin. – ckruse

+0

Bạn đang ở trong một không gian tên? Bạn có thể phải thêm tiền tố hàm bằng \. – Rijk

Trả lời

13

mbstring không phải là một phần mở rộng mặc định trong PHP và bạn phải cài đặt nó nếu bạn đang chạy Linux thử

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

như một người dùng gốc hoặc

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

trên cửa sổ bạn phải chỉnh sửa php.ini để sử dụng thư viện dll mở rộng

Lưu ý: mb_strpos vẫn được hỗ trợ trong PHP 5

+1

-1, bạn giả định rằng tất cả mọi người sử dụng cùng một bản phân phối như bạn làm –

+0

nó chỉ là một gợi ý cho giải pháp, tôi không giả định những gì bạn gọi !!! –

+0

bạn nên cụ thể hơn một chút về "linux" - có hàng tá bản phân phối linux và chỉ một số ít sử dụng 'yum' làm rpm-package-manager - trên ubuntu. ví dụ, điều này sẽ là 'agt-get'. | EDIT: và một sẽ không "!!!! 111oneeleven" vì nó thô lỗ và nam tính. – oezi

1

Tôi đoán rằng phiên bản PHP của bạn không được tạo bằng tùy chọn "--enable-mbstring".

Bạn có thể kiểm tra chức năng phpinfo(). Nên có phần "mbstring". Tôi có điều này:

mbstring 

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

có vẻ như nó không được cài đặt đơn giản. vui lòng xem 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

Đây là chức năng cơ bản PHP. Có vẻ như máy chủ web của bạn chưa cài đặt phần mở rộng mbstring PHP. Kiểm tra phpinfo(); và tìm mbstring trong đó.