<< Как обрезать строку по словам на PHP Определить перенаправление страницы >>

Как сделать первую букву заглавной на PHP

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

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

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

Функция, которая делает первую букву заглавной

1

2

3

4

5

6

7

8

9

10

11

12

13

14

/**

 * 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('дом'); // выведет "Дом"



18.05.2019 132 Gor Abrahamyan -> web developer : views