- Saved searches
- Use saved searches to filter your results more quickly
- Unable to login after upgrading to PHP 7.2 .. Call to undefined function mb_strtolower() #6720
- Unable to login after upgrading to PHP 7.2 .. Call to undefined function mb_strtolower() #6720
- Comments
- mb_strtolower
- Parameters
- Return Values
- Examples
- Notes
- See Also
- User Contributed Notes 6 notes
- General Support — Troubleshooting — mb_strtolower Error
- Related Support Documents
- Products
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to login after upgrading to PHP 7.2 .. Call to undefined function mb_strtolower() #6720
Unable to login after upgrading to PHP 7.2 .. Call to undefined function mb_strtolower() #6720
Comments
Hi there!
My Server:
CentOS 7.6
RoundCube 1.3.8
Webmin
Since I upgrade my server to use PHP v7.2 I cannot login and this error [HTTP ERROR 500] appears after press on login button.
I saw the log file in [/. /roundcube/logs/errors] and I noticed this error.
1 thrown in /. /roundcube/program/include/rcmail.php on line 593
[16-Apr-2019 20:46:39 UTC] PHP Fatal error: Uncaught Error: Call to undefined function mb_strtolower() in /. /roundcube/program/include/rcmail.php:593Stack trace: 0 /. /roundcube/index.php(121): rcmail->login(‘EMAIL. ‘, ‘Password’, ‘localhost’, true)
I googled it and found that I should enable [zend.multibyte] in my PHP.ini, Actually I shocked because it was not enabled in the old PHP 7.0, So I went back to PHP 7.0 configuration and for sure it was not enabled, So Why NOW? Why RoundCube was working before although the same configuration applied in the new PHP v7.2? So I didn’t enable [zend.multibyte] until you reply may be there’s another issue.
Thanks for your great project.
The text was updated successfully, but these errors were encountered:
mb_strtolower
Returns string with all alphabetic characters converted to lowercase.
Parameters
The string being lowercased.
The encoding parameter is the character encoding. If it is omitted or null , the internal character encoding value will be used.
Return Values
string with all alphabetic characters converted to lowercase.
Examples
Example #1 mb_strtolower() example
$str = «Mary Had A Little Lamb and She LOVED It So» ;
$str = mb_strtolower ( $str );
echo $str ; // Prints mary had a little lamb and she loved it so
?>?php
Example #2 mb_strtolower() example with non-Latin UTF-8 text
$str = «Τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός» ;
$str = mb_strtolower ( $str , ‘UTF-8’ );
echo $str ; // Prints τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός
?>?php
Notes
By contrast to strtolower() , ‘alphabetic’ is determined by the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have ‘alphabetic’ property, such as a-umlaut (ä).
For more information about the Unicode properties, please see » http://www.unicode.org/reports/tr21/.
See Also
- mb_strtoupper() — Make a string uppercase
- mb_convert_case() — Perform case folding on a string
- strtolower() — Make a string lowercase
User Contributed Notes 6 notes
Please, note that when using with UTF-8 mb_strtolower will only convert upper case characters to lower case which are marked with the Unicode property «Upper case letter» («Lu»). However, there are also letters such as «Letter numbers» (Unicode property «Nl») that also have lower case and upper case variants. These characters will not be converted be mb_strtolower!
Example:
The Roman letters Ⅰ, Ⅱ, Ⅲ, . Ⅿ (UTF-8 code points 8544 through 8559) also exist in their respective lower case variants ⅰ, ⅱ, ⅲ, . ⅿ (UTF-8 code points 8560 through 8575) and should, in my opinion, also be converted by mb_strtolower, but they are not!
Big internet-companies (like Google) do match both variants as semantically equal (since the representations only differ in case).
Since I was not finding any proper solution in the internet on how to map all UTF8-strings to their lowercase counterpart in PHP, I offer the following hard-coded extended mb_strtolower function for UTF-8 strings:
The function wraps the existing function mb_strtolower() and additionally replaces uppercase UTF8-characters for which there is a lowercase representation. Since there is no proper Unicode uppercase and lowercase character-table in the internet that I was able to find, I checked the first million UTF8-characters against the Google-search and -KeywordTool and identified the following 78 characters as uppercase-characters, not being replaced by mb_strtolower, but having a UTF8 lowercase counterpart.
//the numbers in the in-line-comments display the characters’ Unicode code-points (CP).
function strtolower_utf8_extended ( $utf8_string )
<
$additional_replacements = array
( «Dž» => «dž» // 453 -> 454
, «Lj» => «lj» // 456 -> 457
, «Nj» => «nj» // 459 -> 460
, «Dz» => «dz» // 498 -> 499
, «Ϸ» => «ϸ» // 1015 -> 1016
, «Ϲ» => «ϲ» // 1017 -> 1010
, «Ϻ» => «ϻ» // 1018 -> 1019
, «ᾈ» => «ᾀ» // 8072 -> 8064
, «ᾉ» => «ᾁ» // 8073 -> 8065
, «ᾊ» => «ᾂ» // 8074 -> 8066
, «ᾋ» => «ᾃ» // 8075 -> 8067
, «ᾌ» => «ᾄ» // 8076 -> 8068
, «ᾍ» => «ᾅ» // 8077 -> 8069
, «ᾎ» => «ᾆ» // 8078 -> 8070
, «ᾏ» => «ᾇ» // 8079 -> 8071
, «ᾘ» => «ᾐ» // 8088 -> 8080
, «ᾙ» => «ᾑ» // 8089 -> 8081
, «ᾚ» => «ᾒ» // 8090 -> 8082
, «ᾛ» => «ᾓ» // 8091 -> 8083
, «ᾜ» => «ᾔ» // 8092 -> 8084
, «ᾝ» => «ᾕ» // 8093 -> 8085
, «ᾞ» => «ᾖ» // 8094 -> 8086
, «ᾟ» => «ᾗ» // 8095 -> 8087
, «ᾨ» => «ᾠ» // 8104 -> 8096
, «ᾩ» => «ᾡ» // 8105 -> 8097
, «ᾪ» => «ᾢ» // 8106 -> 8098
, «ᾫ» => «ᾣ» // 8107 -> 8099
, «ᾬ» => «ᾤ» // 8108 -> 8100
, «ᾭ» => «ᾥ» // 8109 -> 8101
, «ᾮ» => «ᾦ» // 8110 -> 8102
, «ᾯ» => «ᾧ» // 8111 -> 8103
, «ᾼ» => «ᾳ» // 8124 -> 8115
, «ῌ» => «ῃ» // 8140 -> 8131
, «ῼ» => «ῳ» // 8188 -> 8179
, «Ⅰ» => «ⅰ» // 8544 -> 8560
, «Ⅱ» => «ⅱ» // 8545 -> 8561
, «Ⅲ» => «ⅲ» // 8546 -> 8562
, «Ⅳ» => «ⅳ» // 8547 -> 8563
, «Ⅴ» => «ⅴ» // 8548 -> 8564
, «Ⅵ» => «ⅵ» // 8549 -> 8565
, «Ⅶ» => «ⅶ» // 8550 -> 8566
, «Ⅷ» => «ⅷ» // 8551 -> 8567
, «Ⅸ» => «ⅸ» // 8552 -> 8568
, «Ⅹ» => «ⅹ» // 8553 -> 8569
, «Ⅺ» => «ⅺ» // 8554 -> 8570
, «Ⅻ» => «ⅻ» // 8555 -> 8571
, «Ⅼ» => «ⅼ» // 8556 -> 8572
, «Ⅽ» => «ⅽ» // 8557 -> 8573
, «Ⅾ» => «ⅾ» // 8558 -> 8574
, «Ⅿ» => «ⅿ» // 8559 -> 8575
, «Ⓐ» => «ⓐ» // 9398 -> 9424
, «Ⓑ» => «ⓑ» // 9399 -> 9425
, «Ⓒ» => «ⓒ» // 9400 -> 9426
, «Ⓓ» => «ⓓ» // 9401 -> 9427
, «Ⓔ» => «ⓔ» // 9402 -> 9428
, «Ⓕ» => «ⓕ» // 9403 -> 9429
, «Ⓖ» => «ⓖ» // 9404 -> 9430
, «Ⓗ» => «ⓗ» // 9405 -> 9431
, «Ⓘ» => «ⓘ» // 9406 -> 9432
, «Ⓙ» => «ⓙ» // 9407 -> 9433
, «Ⓚ» => «ⓚ» // 9408 -> 9434
, «Ⓛ» => «ⓛ» // 9409 -> 9435
, «Ⓜ» => «ⓜ» // 9410 -> 9436
, «Ⓝ» => «ⓝ» // 9411 -> 9437
, «Ⓞ» => «ⓞ» // 9412 -> 9438
, «Ⓟ» => «ⓟ» // 9413 -> 9439
, «Ⓠ» => «ⓠ» // 9414 -> 9440
, «Ⓡ» => «ⓡ» // 9415 -> 9441
, «Ⓢ» => «ⓢ» // 9416 -> 9442
, «Ⓣ» => «ⓣ» // 9417 -> 9443
, «Ⓤ» => «ⓤ» // 9418 -> 9444
, «Ⓥ» => «ⓥ» // 9419 -> 9445
, «Ⓦ» => «ⓦ» // 9420 -> 9446
, «Ⓧ» => «ⓧ» // 9421 -> 9447
, «Ⓨ» => «ⓨ» // 9422 -> 9448
, «Ⓩ» => «ⓩ» // 9423 -> 9449
, «𐐦» => «𐑎» // 66598 -> 66638
, «𐐧» => «𐑏» // 66599 -> 66639
);
$utf8_string = mb_strtolower ( $utf8_string , «UTF-8» );
$utf8_string = strtr ( $utf8_string , $additional_replacements );
return $utf8_string ;
> //strtolower_utf8_extended()
General Support — Troubleshooting — mb_strtolower Error
Fatal error: Call to undefined function mb_strtolower() in .
It means that the site PHP is missing the mb_strtolower module.
If you have access to your php.ini file you can read and follow the steps found in here:
- Check this link for more information http://www.knowledgebase-script.com/kb/article/how-to-enable-mbstring-in-php-46.html
- To solve this issue you need to install this module on your server http://www.php.net/manual/en/mbstring.installation.php
- If you are using cpanel, please check this link http://forums.cpanel.net/f5/enable-install-mbstring-module-158165.html
- Or contact your hosting company
Thanks for the feedback There was a problem submitting your feedback. Please try again later.
Related Support Documents
Products
- General Support Issues
- Use Cases
- Payment Integrations
- PeepSo Integrations
- 404 Console
- Ad Changer (CMAC)
- After Registration Extended Profile Fields
- Questions and Answers (CMA)
- Answers — Anonymous User Posting
- Answers — Ask The Experts
- Answers — Idea Stimulator (CMAPET)
- Answers — Payments
- Answers — Widgets (CMAW)
- Answers — Import Export
- Appointments Booking
- Appointments Booking — Events
- Appointments Booking — Group Meeting
- Appointments Booking — User Calendar
- Appointments Booking — iCal Sync
- Appointments Booking — Payments
- Business Directory (CMBD)
- Business Directory — Community
- Business Directory — Contact Form
- Business Directory — Levels
- Business Directory — Payments
- Curated List Manager (CMCLM)
- Curated Twitter Aggregator (CMTA)
- Contextual Product Recommendations
- Course Catalog LMS
- Course Catalog — Calendar (LMS)
- Course Catalog — Dashboard (LMS)
- Course Catalog — Form Builder (LMS)
- Course Catalog — Payments (LMS)
- Course Catalog — Waiting List (LMS)
- Custom Reports (CMCR)
- Download and File Manager (CMDM)
- Download and File Manager — Anonymous Upload
- Download and File Manager Client Zone
- Download and File Manager — User Registration
- Download and File Manager — Widgets
- Download and File Manager Payments
- EDD Ecommerce Tracking
- EDD MailerLite Email Marketing
- EDD Payment Gateway Order
- Editor Moderation Tools (CMMOD)
- Email Tools Pro
- Email Registration Blacklist (CMRB)
- Expert Directory (CMED)
- Expert Directory — Community
- Expert Directory — Contact Form
- Expert Directory — Levels
- Expert Directory — Payments
- Export User Data
- FAQ (CMF)
- Fast Search Filter
- Footnotes
- Header and Footer Script Loader
- HelpScout Docs Portal (CMHSDP)
- Invitation Code Content Access
- Locations (CMML)
- Locations Anonymous Posting
- MicroPayments (CMMP)
- MicroPayments — Group Actions
- Notification Bar (CMNB)
- OnBoarding (CMOB)
- Paged Post Slider (PPS)
- Pay Per Post (CMPPP)
- Popup (CMP)
- Powerful Responsive Slider (CMPRS)
- Product Directory (CMPD)
- Product Directory — Community
- Product Directory — Payments
- Registration (CMREG)
- Registration — Approve New Users
- Registration — Bulk Email Invitation
- Registration — Temp. Login Without Pass
- Registration — Payments
- CM Restrict User Account Access
- Reviews and Ratings
- Route Manager (CMMRM)
- Routes — Anonymous Posting
- Routes — Custom Fields
- Routes — BuddyPress Integration
- RSS Aggregator (CMCRA)
- RSS Post Importer
- Search and Replace (CMSR)
- Search Console
- SEO Keyword Hound
- Secure Login Two-Factor Authentication
- Site Access Restriction (SAR)
- Table of Contents (CMTOC)
- Telegram Bot
- Tooltip Glossary (CMTG)
- Tooltip Glossary — Community Terms
- User Submitted Posts (CMUSP)
- Video Lessons Manager (CMVLM)
- Video Lessons — Payments (CMEDDPAY)
- Video Lessons — Quiz
- Welcome Message and Disclaimer