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

ctype_upper

Проверяет, все ли символы в переданной строке text являются буквами в верхнем регистре.

Список параметров

Замечание:

Если передано целое число ( int ) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Начиная с PHP 8.1.0, передача нестроковых аргументов устарела. В будущем аргумент будет интерпретироваться как строка вместо кода ASCII. В зависимости от предполагаемого поведения аргумент должен быть приведён к строке ( string ) или должен быть сделан явный вызов функции chr() .

Возвращаемые значения

Возвращает true , если каждый символ в строке text является прописной буквой в текущей локали. При вызове с пустой строкой результатом всегда будет false .

Примеры

Пример #1 Пример использования ctype_upper() (с использованием локали по умолчанию)

$strings = array( ‘AKLWC139’ , ‘LMNSDO’ , ‘akwSKWsm’ );
foreach ( $strings as $testcase ) if ( ctype_upper ( $testcase )) echo «Строка $testcase состоит только из букв в верхнем регистре.\n» ;
> else echo «Строка $testcase не состоит только из букв в верхнем регистре.\n» ;
>
>
?>

Результат выполнения данного примера:

Строка AKLWC139 не состоит только из букв в верхнем регистре. Строка LMNSDO состоит только из букв в верхнем регистре. Строка akwSKWsm не состоит только из букв в верхнем регистре.

Смотрите также

  • ctype_alpha() — Проверяет наличие буквенных символов
  • ctype_lower() — Проверяет наличие символов в нижнем регистре
  • setlocale() — Устанавливает настройки локали

Источник

Работа с регистром строк в php

Не пропусти свежие посты, подпишись:

Читайте также:  Php fpm use socket

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

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

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

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

 $str = 'Строка для проверки'; $firstLetter = mb_substr($str, 0, 1); if(mb_strtolower($firstLetter) != $firstLetter)< echo 'Первая буква строки «' . $str . '» заглавная'; > else < echo 'Первая буква строки ' . $str . ' прописная'; > 
 Первая буква строки строка для проверки прописная 

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

Функция 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('/(?$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); //у ЛУКомОРЬЯ дУБ ЗЕЛЁНЫЙ. 

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

Не пропусти свежие посты, подпишись:

Источник

Замена регистра в строках PHP

Список PHP-функций для изменения регистра символов в строках и примеры их использования.

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

Функция ctype_upper($string) – определяет, являются ли все буквы в строке в верхнем регистре.

$str = 'Ы'; if (ctype_upper($str)) < echo 'Заглавная'; >else

Вариант для кириллицы в кодировке 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); // привет Мир!

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

Для UTF-8:

$text = 'привет Мир!'; echo mb_strtoupper($text); // ПРИВЕТ МИР!

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

$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('/(?$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); // пРИВЕТ мИР!

Комментарии 1

function invertCase($text)
$string = »;
/*
Решение №1
$mb_strlen = mb_strlen($text);
$i = $mb_strlen;
while ($i > 0) $i—;
$char = mb_substr($text, $i, 1);
$char = (mb_strtolower($char) === $char) ? mb_strtoupper($char) : mb_strtolower($char);
$string = $char.$string;
>
*/
// Решение №2
$arr = mb_str_split($text, 1);
foreach ($arr as $char) $char = (mb_strtolower($char) === $char) ? mb_strtoupper($char) : mb_strtolower($char);
$string .= $char;
>
return $string;
>

Авторизуйтесь, чтобы добавить комментарий.

Источник

ctype_lower

Проверяет, все ли символы в переданной строке text являются буквами в нижнем регистре.

Список параметров

Замечание:

Если передано целое число ( int ) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Начиная с PHP 8.1.0, передача нестроковых аргументов устарела. В будущем аргумент будет интерпретироваться как строка вместо кода ASCII. В зависимости от предполагаемого поведения аргумент должен быть приведён к строке ( string ) или должен быть сделан явный вызов функции chr() .

Возвращаемые значения

Возвращает true , если каждый символ в строке text является строчной буквой в текущей локали. При вызове с пустой строкой результатом всегда будет false .

Примеры

Пример #1 Пример использования ctype_lower() (с использованием локали по умолчанию)

$strings = array( ‘aac123’ , ‘qiutoas’ , ‘QASsdks’ );
foreach ( $strings as $testcase ) if ( ctype_lower ( $testcase )) echo «Строка $testcase состоит только из букв в нижнем регистре.\n» ;
> else echo «Строка $testcase не состоит только из букв в нижнем регистре.\n» ;
>
>
?>

Результат выполнения данного примера:

Строка aac123 не состоит только из букв в нижнем регистре. Строка qiutoas состоит только из букв в нижнем регистре. Строка QASsdks не состоит только из букв в нижнем регистре.

Смотрите также

  • ctype_alpha() — Проверяет наличие буквенных символов
  • ctype_upper() — Проверяет наличие символов в верхнем регистре
  • setlocale() — Устанавливает настройки локали

Источник

Оцените статью