mb_ = Multibyte
(многобайтовые функции, от “Multibyte String”).
Обычные строковые функции в PHP (например, strlen, substr, strtolower) работают только с однобайтовыми символами, то есть символами, которые укладываются в один байт. Это хорошо для английского алфавита, но не подходит для русского, китайского, арабского и других языков, где один символ может занимать 2, 3 или 4 байта (в кодировке UTF-8, например).
Популярные mb_ функции:
| Обычная | Многобайтовая альтернатива | Что делает |
|---|---|---|
strlen() | mb_strlen() | Длина строки (в символах, не в байтах) |
substr() | mb_substr() | Вырезает подстроку |
strtolower() | mb_strtolower() | Перевод в нижний регистр |
strtoupper() | mb_strtoupper() | Перевод в верхний регистр |
strpos() | mb_strpos() | Поиск позиции подстроки |
strrpos() | mb_strrpos() | Поиск последней позиции подстроки |
Когда использовать mb_?
Если ты работаешь только с английским — можно использовать обычные функции.
Если есть хоть немного русского, украинского, латышского и т.д., или ты просто хочешь, чтобы код всегда был безопасным — лучше сразу использовать mb_ функции.
