Как сделать первую букву заглавной на PHP. Как сделать первую букву заглавной php кирилица Php первая буква прописная

Сделать так, чтобы первая буква стала заглавной - довольно распространённая задача веб-разработчика. Это может потребоваться в самых разных случаях, но не будем заострять на них внимание, наша задач — поднять первую букву в любом слове с любой кодировкой.

Я не зря упомянул про кодировку, потому что в PHP есть встроенная функция, чтобы , это ucfirst() . Но она нам не подходит, т.к. работает только с латинскими символами. Т.е. если вы с помощью такой функции попробуете поднять первую букву в слове «home», то всё будет в порядке и на выходе вы получите «Home». А если сделать то же самое со словом «дом», то на выходе как был «дом» с маленькой буквой, так и останется. Это происходит потому, что мы используем русские символы в кодировке UTF-8, т.е. многобайтовой, а ucfirst() используется для однобайтовых кодировок.

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

Функция, которая делает первую букву заглавной /** * Uppercase first letter. Working with multi-byte encodings. * * @param $str * @param string $encoding * @return string */ function upFirstLetter($str, $encoding = "UTF-8") { return mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding) . mb_substr($str, 1, null, $encoding); } echo upFirstLetter("дом"); // выведет "Дом"

PHP хорош многообразием нативных функций языка. Однако, в некоторых случаях приходится дописывать недостающий функционал. Особенно это заметно при работе с функциями преобразования строк и различными кодировками.

Например, ucfirst - функция, которая преобразовывает первый символ строки в верхний регистр. Казалось бы, не должно возникнуть никаких проблем, но при работе с кириллицей такого преобразования не происходит. Это касается и функции ucwords - преобразует в верхний регистр первый символ каждого слова в строке.

С символами анг.алфавита проблем не возникает:

Test string Test String

Но с кириллицей возникают проблемы:

Тестовая строка тестовая строка

Для PHP типичны случаи, когда функции "плохо" или вообще не работают с кириллицей. Некоторые функции с приставкой mb решают проблемы с кириллицей. Например, mb_strtolower - приведение строки к нижнему регистру. В отличие от strtolower(), то что символ является буквой определяется на основании свойств символа Юникода.

Для решения проблемы определим функцию mb_ucfirst(string str [, string encoding]), которая будет обрабатывать символы Юникода.

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

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

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

Использование следующее:

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

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

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

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

#content p:first-letter { text-transform: uppercase; }

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

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

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

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

$(document).ready(function() { $(".content").on("keyup", function() { var text = $(this).val(); var new_text = text.charAt(0).toUpperCase() + text.substr(1); $(this).val(new_text); }); });

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