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

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

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

  1. $str = 'Ы';
  2. if (ctype_upper($str)) {
  3. echo 'Заглавная';
  4. } else {
  5. echo 'строчная';
  6. }

Вариант для кириллицы в кодировке UTF-8:
  1. $str = 'Ы';
  2. if (mb_strtolower($str) !== $str) {
  3. echo 'Заглавная';
  4. } else {
  5. echo 'строчная';
  6. }
  7.  
  8. // Выведется «Заглавная»

Пример определения регистра для первой буквы в строке:
  1. $text = 'Привет мир!';
  2. $chr = mb_substr($text, 0, 1);
  3. if (mb_strtolower($chr) !== $chr) {
  4. echo 'Заглавная';
  5. } else {
  6. echo 'строчная';
  7. }
  8.  
  9. // Выведется «Заглавная»


Первая заглавная буква
ucfirst($string) — преобразует первый символ строки в верхний регистр.
  1. $text = 'привет Мир!';
  2. echo ucfirst($text);

Для UTF-8:
  1. if(!function_exists('mb_ucfirst')) {
  2. function mb_ucfirst($str) {
  3. $fc = mb_strtoupper(mb_substr($str, 0, 1));
  4. return $fc . mb_substr($str, 1);
  5. }
  6. }
  7.  
  8. $text = 'привет Мир!';
  9. echo mb_ucfirst($text); // Привет Мир!

Первая строчная
ucfirst($string) — преобразует первый символ строки в верхний регистр.
  1. $text = 'Привет Мир!';
  2. echo lcfirst($text);

Для UTF-8:
  1. if(!function_exists('mb_lcfirst')) {
  2. function mb_lcfirst($str) {
  3. $fc = mb_strtolower(mb_substr($str, 0, 1));
  4. return $fc . mb_substr($str, 1);
  5. }
  6. }
  7.  
  8. $text = 'Привет Мир!';
  9. echo mb_lcfirst($text); // привет Мир!

Все строчные буквы
strtolower($string), mb_strtolower($string) — приводят строки к нижнему регистру.
  1. $text = 'Привет Мир!';
  2. echo strtolower($text);

Для UTF-8:
  1. $text = 'Привет Мир!';
  2. echo mb_strtolower($text); // привет мир!

Заглавная буква в каждом слове
  1. $text = 'привет мир!';
  2. echo ucwords($text);

Для UTF-8:
  1. if(!function_exists('mb_ucwords')) {
  2. function mb_ucwords($str) {
  3. $str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
  4. return ($str);
  5. }
  6. }
  7.  
  8. $text = 'привет мир!';
  9. echo mb_ucwords($text); // Привет Мир!

Инверсия регистра
  1. function mb_flip_case($string) {
  2. $characters = preg_split('/(?<!^)(?!$)/u', $string);
  3. foreach ($characters as $key => $char) {
  4. if (mb_strtolower($char, "UTF-8") != $char) {
  5. $char = mb_strtolower($char, 'UTF-8');
  6. } else {
  7. $char = mb_strtoupper($char, 'UTF-8');
  8. }
  9. $characters[$key] = $char;
  10. }
  11. return implode('', $characters);
  12. }
  13.  
  14. $text = 'Привет Мир!';
  15. echo mb_flip_case($text); // пРИВЕТ мИР!


  17.02.24 / 21:57 | PHP |   79 | 0   0