В 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); //у ЛУКомОРЬЯ дУБ ЗЕЛЁНЫЙ.

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

Полезная статья?
(Голосов: 4, Рейтинг: 3.3)
Вам также могут понравиться
Обновление остатков товара на складе в 1С Битрикс

Обновление остатков товара на складе в 1С Битрикс

Как правильно обновлять остатки товара на сайта под управлением CMS 1С Битрикс.

Английский для программистов

Английский для программистов

Почему IT-специалисту необходимо освоить английский язык? Разбираем в статье.

Как подключить CSS и JS файлы к шаблону 1С Битрикс

Как подключить CSS и JS файлы к шаблону 1С Битрикс

Как правильно подключать стили и скрипты к шаблону 1С Битрикс.


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