php, в чем разница между strtolower и mb_strtolower? - PullRequest
9 голосов
/ 15 мая 2009

В PHP, в чем разница между strtolower и mb_strtolower?

Если я хочу преобразовать отправленный адрес электронной почты, который нужно преобразовать в нижний регистр, какой мне следует использовать? Есть ли электронное письмо, подобное этому: Name@Domain-Test.com

Если такие письма есть, следует ли мне преобразовывать отправленный адрес электронной почты в нижний регистр?

Ответы [ 4 ]

10 голосов
/ 24 февраля 2015

strtolower (); не работает для польских символов

<?php strtolower("mĄkA"); ?>

вернет: mĄka;

лучшее решение - используйте mb_strtolower ()

<?php mb_strtolower("mĄkA",'UTF-8'); ?> 

вернется: mąka

См. strtolower () & mb_strtolower () в PHP Manual

5 голосов
/ 15 мая 2009

В чем разница между strtolower и mb_strtolower?

Функции mb_ * работают с многобайтовой строкой. В руководстве написано:

В отличие от strtolower (), «алфавитный» определяется свойствами символов Юникода. Таким образом, на поведение этой функции не влияют настройки локали, и она может преобразовывать любые символы, имеющие свойство «алфавит», например A-umlaut (Ä).

-

Есть ли электронная почта, подобная этой: Name@Domain-Test.com

Да, я полагаю, могут быть такие адреса электронной почты. Я обнаружил, что в целом адреса электронной почты не чувствительны к регистру, поэтому я не пытаюсь изменить их регистр.

4 голосов
/ 15 мая 2009

Функции mb_ работают также с многобайтовыми (Unicode) строками. Адреса электронной почты не должны быть чувствительными к регистру - нет особых причин для их преобразования в более низкие значения.

0 голосов
/ 22 декабря 2018

Если вы используете эту функцию для строки Unicode, не сообщая PHP, что это Unicode, вы повредите свою строку. В частности, верхний регистр «A» с тильдой, обычно встречающийся в 2-байтовых символах UTF-8, преобразуется в строчный «a» с тильдой.

mb_strtolower() очень МЕДЛЕННО, если у вас есть соединение с базой данных, вы можете использовать его для преобразования строк в нижний регистр. Возможны даже latin1/9 (iso-8859-1/15) и другие кодировки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...