PHP:
Преобразование строки в нижний регистр
Как это сделать:
PHP использует strtolower
для преобразования всех символов строки в нижний регистр. Вот как это работает:
<?php
$originalString = "HeLLo WoRLD!";
$lowerCaseString = strtolower($originalString);
echo $lowerCaseString; // Выводит: hello world!
?>
Если вам нужно обрабатывать многобайтовые кодировки символов, такие как UTF-8, используйте вместо этого mb_strtolower
:
<?php
$originalString = "İstanbul";
$lowerCaseString = mb_strtolower($originalString, 'UTF-8');
echo $lowerCaseString; // Выводит: istanbul (правильно конвертирует İ в i)
?>
Углубленно
Исторически функция strtolower
в PHP была функцией по умолчанию для преобразования регистра, введенная в очень ранних версиях PHP. Однако, поскольку приложения PHP становились более глобальными, возникла необходимость корректно обрабатывать многобайтовые кодировки символов, что привело к появлению mb_strtolower
.
Альтернативы strtolower
и mb_strtolower
включают использование регулярных выражений с функциями mb_ereg_replace_callback
или preg_replace_callback
, но для простого преобразования регистра они являются излишними.
В PHP строки традиционно были основаны на байтах, а не на символах, что означает, что каждый байт является одним символом. Это работает для однобайтовых кодировок, таких как ASCII, где каждый символ действительно является одним байтом. Для многобайтовых кодировок mb_strtolower
понимает кодировку символов и обрабатывает символы так, как это должно быть.
Смотрите также
- Руководство по PHP на
strtolower
: https://www.php.net/manual/ru/function.strtolower.php - Руководство по PHP на
mb_strtolower
: https://www.php.net/manual/ru/function.mb-strtolower.php - UTF-8 и Unicode для PHP-разработчиков: https://www.php.net/manual/ru/book.mbstring.php