Только первая буква заглавная php

Делаем первую букву в строке заглавной на PHP/jQuery/CSS

Зачастую в спешке при добавлении материалов на сайт или, например, создании новой темы на форуме пользователь может начать писать предложение (название) с маленькой (строчной) буквы. Это в какой-то степени является ошибкой.

Я покажу несколько вариантов решения этой задачи: PHP и CSS подойдут больше для уже опубликованных материалов, когда как jQuery сможет исправить положение еще до публикации.

Первая буква строки в верхнем регистре на PHP

На PHP существует функция под названием «ucfirst», которая как раз преобразует первый символ строки в верхний регистр, но минус ее в том, что она не совсем корректно работает с кириллицей.

Для этого мы напишем свою небольшую функцию. Реализация будет выглядеть следующим образом:

  $content = "скажи-ка, дядя, ведь не даром Москва, спаленная пожаром, Французу отдана?"; // Исходная строка echo mb_ucfirst($content); // Получаем результат с первой заглавной буквой ?> 

В таком варианте мы получим предложение, которое начинается с большой буквы, что, собственно говоря, нам и необходимо.

Читайте также:  Потоковый ввод python stdin

Первая буква строки в верхнем регистре на CSS

Этот метод визуально (то есть в исходном коде сайта предложения будут выглядеть как есть) также преобразует первый символ в верхний регистр.

  

второе предложение

третье предложение

четвертое предложение

С помощью псевдоэлемента «first-letter» и свойства «text-transform» мы задали оформление для каждой первой буквы параграфа.

Первая буква строки в верхнем регистре на jQuery

Как я уже говорил ранее, этот способ преобразования лучше всего подойдет для материалов, которые еще только будут публиковаться.

Для примера мы возьмем текстовое поле (оно будет выступать у нас в качестве поля для ввода заголовка) и напишем для него небольшой скрипт, который при вводе предложения с маленькой буквы делает его с большой:

Скрипт срабатывает как при написании текста, так и простой его вставке. Не забывайте, что для работы скриптов на вашем сайте необходимо наличие подключенной библиотеки jQuery.

Источник

Замена регистра в строках 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;
>

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

Источник

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

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

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

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

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

Источник

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