Разработчику. Сборник рецептов PHP
Задавайте вопросы

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

Вернуться назад

Задача

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

Решение

Первые буквы одного или более слов можно сделать прописными с помощью функции 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('<A HREF="one.php">one</A>');

I'M NOT YELLING!
<a href="one.php">one</a>

Обсуждение

Первый символ строки можно сделать прописным посредством функции 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.

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

Вернуться назад

Рейтинг@Mail.ru

Яндекс.Метрика

Индекс цитирования


Рейтинг Сайтов ДОСКИ.РУ