Замена регистра в строках 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); // пРИВЕТ мИР!


  17.02.24 / 21:57 | PHP |   134 | 0   0