Регистр текста

Верхний и нижний регистр

Сделать буквы заглавными или маленькими можно через функции mb_strtoupper() и mb_strtolower().

$text = 'Текст';
$text = mb_strtoupper($text, 'UTF-8'); // ТЕКСТ
$text = mb_strtolower($text, 'UTF-8'); // текст

Функции strtoupper() и strtolower() не рекомендуется использовать, т.к. они не понимают юникод (т.е. не преобразует русские символы в указанный регистр).

Первая буква заглавная

Сделать первую букву заглавной можно через функцию mb_ucfirst().

mb_ucfirst('текст'); // Текст (с версии PHP 8.4)

Функцию ucfirst() не рекомендуется использовать, т.к. она не понимает юникод, т.е. она не преобразует русские символы в верхний регистр. До версии PHP 8.4 создавалась отдельная функция:

if (!function_exists('mb_ucfirst')) {
  function mb_ucfirst($string, $enc = 'UTF-8') {
    return mb_strtoupper(mb_substr($string, 0, 1, $enc), $enc).mb_substr($string, 1, mb_strlen($string, $enc), $enc);
  }
}

echo mb_ucfirst('zend'); // Zend
echo mb_ucfirst('зенд'); // Зенд

Сделать каждое слово с заглавной буквы

Сделать каждое слово с заглавной буквы можно через функцию mb_convert_case().

mb_convert_case('hello world', MB_CASE_TITLE); // Hello World
mb_convert_case('привет мир', MB_CASE_TITLE);  // Привет Мир

Также есть функция ucwords(), но она не понимает юникод, т.е. она не преобразует русские символы в верхний регистр.

Проверить текст на верхний или нижний регистр

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

function isUpper($text) {
  return $text == mb_strtoupper($text);
}

function isLower($text) {
  return $text == mb_strtolower($text);
}

isUpper('PHP'); // true
isUpper('php'); // false

isLower('php'); // true
isLower('PHP'); // false

В PHP есть функции ctype_upper(), ctype_lower()IntlChar::islower() и IntlChar::isupper() которые проверяют регистр текста, но они не понимают юникод (т.е. для русского языка всегда возвращают «false»).