Список PHP-функций для изменения регистра символов в строках и примеры их использования.
Замена регистра в строках PHP
Проверка, является ли буква прописной или строчной
Функция ctype_upper($string) – определяет, являются ли все буквы в строке в верхнем регистре.
$str = 'Ы';
if (ctype_upper($str)) {
echo 'Заглавная';
} else {
echo 'строчная';
}Вариант для кириллицы в кодировке UTF-8:
$str = 'Ы';
if (mb_strtolower($str) !== $str) {
echo 'Заглавная';
} else {
echo 'строчная';
}
// Выведется «Заглавная»Пример определения регистра для первой буквы в строке:
$text = 'Привет мир!';
$chr = mb_substr($text, 0, 1);
if (mb_strtolower($chr) !== $chr) {
echo 'Заглавная';
} else {
echo 'строчная';
}
// Выведется «Заглавная»Первая заглавная буква
ucfirst($string) — преобразует первый символ строки в верхний регистр.
$text = 'привет Мир!';
echo ucfirst($text); Для UTF-8:
if(!function_exists('mb_ucfirst')) {
function mb_ucfirst($str) {
$fc = mb_strtoupper(mb_substr($str, 0, 1));
return $fc . mb_substr($str, 1);
}
}
$text = 'привет Мир!';
echo mb_ucfirst($text); // Привет Мир!Первая строчная
ucfirst($string) — преобразует первый символ строки в верхний регистр.
$text = 'Привет Мир!';
echo lcfirst($text); Для UTF-8:
if(!function_exists('mb_lcfirst')) {
function mb_lcfirst($str) {
$fc = mb_strtolower(mb_substr($str, 0, 1));
return $fc . mb_substr($str, 1);
}
}
$text = 'Привет Мир!';
echo mb_lcfirst($text); // привет Мир!Все строчные буквы
strtolower($string), mb_strtolower($string) — приводят строки к нижнему регистру.
$text = 'Привет Мир!';
echo strtolower($text);
Для UTF-8:
$text = 'Привет Мир!';
echo mb_strtolower($text); // привет мир!
Заглавная буква в каждом слове
$text = 'привет мир!';
echo ucwords($text);
Для UTF-8:
if(!function_exists('mb_ucwords')) {
function mb_ucwords($str) {
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
return ($str);
}
}
$text = 'привет мир!';
echo mb_ucwords($text); // Привет Мир!Инверсия регистра
function mb_flip_case($string) {
$characters = preg_split('/(?<!^)(?!$)/u', $string);
foreach ($characters as $key => $char) {
if (mb_strtolower($char, "UTF-8") != $char) {
$char = mb_strtolower($char, 'UTF-8');
} else {
$char = mb_strtoupper($char, 'UTF-8');
}
$characters[$key] = $char;
}
return implode('', $characters);
}
$text = 'Привет Мир!';
echo mb_flip_case($text); // пРИВЕТ мИР!