Управление регистром

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

Решение
Первые буквы одного или более слов можно сделать прописными с помощью функции ucfirst() или функции ucwords():

print ucfirst("how do you do today?");
print ucwords("the prince of wales");
How do you do today?
The Prince Of Wales

Регистр всей строки изменяется функцией strtolower() или функцией strtoupper():

print strtoupper("i'm not yelling!");
// Стандарт XHTML требует, чтобы символы в тегах были в нижнем регистре
print strtolower('one');
I'M NOT YELLING!
one

Обсуждение
Первый символ строки можно сделать прописным посредством функции ucfirst():

print ucfirst('monkey face');
print ucfirst('1 monkey face');
Monkey face
1 monkey face

Обратите внимание, что во второй строке вывода слово «monkey» начинается со строчной буквы.


Функция ucwords() позволяет сделать прописным первый символ каждого слова в строке:

print ucwords('1 monkey face');
print ucwords("don't play zone defense against the philadelphia 76-ers");
1 Monkey Face
Don't Play Zone Defense Against The Philadelphia 76-ers

Как и следовало ожидать, функция ucwords() не делает прописной букву «t» в слове «don’t». Но она также не делает прописной букву «е» в «70-е». Для функции ucwords() слово – это любая последовательность непробельных символов, за которой расположен один или несколько пробельных. Символы «'» и «-» не являются пробельными, поэтому функция ucwords() не считает «t» в «don’t» или «е» в «70-е» начальными символами слов. Ни ucfirst(), ни ucwords() не изменяют регистр не первых символов:

print ucfirst('macWorld says I should get a iBook');
print ucwords('eTunaFish.com might buy itunaFish.Com!');
MacWorld says I should get a iBook
ETunaFish.com Might Buy ItunaFish.Com!

Функции strtolower() и strtoupper() работают с целыми строками, а не только с отдельными символами. Функция strtolower() переводит все алфавитные символы в нижний регистр, а функция strtoupper() – в верхний:

print strtolower("I programmed the WOPR and the TRS-80.");
print strtoupper('"since feeling is first" is a poem by e. e. cummings.');
i programmed the wopr and the trs-80.
"SINCE FEELING IS FIRST" IS A POEM BY E. E. CUMMINGS.

При определении верхнего и нижнего регистров приоритетными для этих функций являются их локальные настройки.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Анализ данных, разделенных запятой
Анализ данных, состоящих из полей фиксированной ширины
Включение функций и выражений в строки
Доступ к подстрокам
Замещение подстрок

Вернуться в раздел: PHP / 1. Строки