Не пропусти свежие посты, подпишись:
В 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); //у ЛУКомОРЬЯ дУБ ЗЕЛЁНЫЙ.

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

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

Все курсы партёнров
Вам также могут понравиться
Кем можно работать в сфере веб-разработки

Кем можно работать в сфере веб-разработки

Хотите начать работать в сфере веб-разработки, но не знаете с чего можно начать? Читайте описание самых популярных веб-профессий, с их описанием, обязанностями и ориентировочными зарплатами.

CSS курсоры

CSS курсоры

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

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

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

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


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