В php есть набор функций позволяющих проверять или как-то влиять на регистр строки. Давайте рассмотрим их подробнее.

Проверка регистра строки

Функция ctype_upper($str) проверяет являются ли все символы строки $str заглавными.

$str = 'Test string';

if(ctype_upper(mb_substr($str, 0, 1))){
	echo 'Первая буква строки <b>«' . $str . '»</b> заглавная';
} else {
	echo 'Первая буква строки <b>' . $str . '</b> прописная';
}

Результат

Первая буква строки «Test string» заглавная


С кириллицей тут есть засада, mb_substr() хотя и возвращает корректный символ, но его почему-то не распознаёт ctype_upper() как заглавную буку. Поэтому можно реализовать такую проверку:

$str = 'Строка для проверки';
$firstLetter  = mb_substr($str, 0, 1);

if(mb_strtolower($firstLetter) != $firstLetter){
	echo 'Первая буква строки <b>«' . $str . '»</b> заглавная';
} else {
	echo 'Первая буква строки <b>' . $str . '</b> прописная';
}

Результат:

Первая буква строки строка для проверки прописная

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

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

//Проверяем что такуй функции нет
if(!function_exists('mb_ucfirst')) {
	//Добавляем функцию
	function mb_ucfirst($str) {
		//Преобразуем первый символ
		$fc = mb_strtoupper(mb_substr($str, 0, 1));
		//Возвращаетм строку
		return $fc . mb_substr($str, 1);
	}
}
 
$str = 'cтрока для проверки';
echo mb_ucfirst($str); // 'Строка для проверки

Первая строчная буква

Функция lcfirst($str) приводит первый символ строки $str к нижнему регистру. Для работы с 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);
	}
}
 
$str = 'Cтрока для проверки';
echo mb_ucfirst($str); // 'cтрока для проверки

Все заглавные буквы 

Функции strtoupper($string), mb_strtoupper($string) — преобразует строку в верхний регистр. Префикс mb_ для кириллицы (UTF-8).

$str = 'Cтрока для проверки';
echo mb_strtoupper($str); // CТРОКА ДЛЯ ПРОВЕРКИ

Все строчные буквы

Функции strtolower($string), mb_strtolower($string) — приводят строки к нижнему регистру. Для UTF-8 так же используется функция с премифксом mb_. 


$str = 'CтроКа Для проАерки';
echo mb_strtolower($str); // cтрока для проаерки

Заглавная буква в каждом слове

Если вам нужно вывести расшифровку аббревиатуры какой-нибудь организации, а у вас есть строка в нижнем регистре, воспользуйтесь функцией ucwords(). Она сделает в строке каждое слово с заглавной буквы.

$str = 'National hockey league';
echo 'NHL is ' . ucwords($str); //NHL is National Hockey League
Для работы с кириллицей потребуется так же пользовательский аналог.

if(!function_exists('mb_ucwords')) {
	function mb_ucwords($str) {
		$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
		return ($str);
	}
}

$str = 'федеральная служба безопасности';
echo 'ФСБ можно расшифровать как «' . mb_ucwords($str) . '»'; //ФСБ можно расшифровать как «Федеральная Служба Безопасности»

Инверсия регистра строки

И для закрепления материала, воспользуйтесь примером и разберитесь как работает функция позволяющая провести инверсию регистра. Т.е. сделать все заглавные буквы строчными и наоборот.


function mb_inversion_case($str) {
	//Разбиваем строку посимвольно в массив
	$characters = preg_split('/(?<!^)(?!$)/u', $str);
	//Перебираем массив проверяя и преобразовывая каждый символ
	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);
}

$str = 'У лукОМорья Дуб зелёный.';
echo mb_inversion_case($str); //у ЛУКомОРЬЯ дУБ ЗЕЛЁНЫЙ.

Удачи в работе со строками!

Полезная статья?
(Голосов: 1, Рейтинг: 3.3)
Курсы от партнёров
Хотите освоить востребованную профессию? Воспользуйтесь предложениями от наших партнёров. Пройдите учебный курс по одному из популярных IT направлений.

Все курсы партёнров
Вам также могут понравиться
CSS курсоры

CSS курсоры

В статье рассмотрены возможности изменения курсоров пользователя при помощи CSS

Работа с циклами в PHP

Работа с циклами в PHP

В статье рассмотрены примеры работы с циклами в PHP

Округление чисел в PHP

Округление чисел в PHP

В статье рассмотрены методы округления чисел в PHP


Комментарии
Защита от автоматических сообщений
CAPTCHA
Введите слово на картинке