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

Рецепт №8. Из книги «128 рецептов php»
Перейти к оглавлению

Для смены регистра в строке существует не малое количество функций.
Чтобы перевести все символы строки в нижний регистр существует две функции – strtolower и mb_strtolower. При работе с кириллическими строками в кодировке utf-8, стоит использовать функцию mb_strtolower, а для остальных случаев можно использовать просто strtolower.

Пример:

// исходная строка
$string = "строка из ЧЕТЫРЕХ слов";
// перевод всех символов в нижний регистр
$mb_lower = mb_strtolower($string, "utf-8");
$lower = strtolower($string);
echo "mb_lower: $mb_lower<br/>";
echo "lower: $lower<br/>";

Для перевода всех символов строки в верхний регистр, так же существует две функции – strtoupper и mb_strtoupper. При работе с кириллическими строками в кодировке utf-8, стоит использовать функцию mb_strtoupper, а для остальных случаев можно использовать просто strtoupper.

Пример:

// исходная строка
$string = "строка из ЧЕТЫРЕХ слов";
// перевод всех символов в нижний регистр
$mb_upper = mb_strtoupper($string, "utf-8");
$upper = strtoupper($string);
echo "mb_upper: $mb_upper<br/>";
echo "upper: $upper<br/>";

Существует еще несколько функций для перевода символов в верхний регистр: ucfirst–преобразовывает только первый символ в строке. И ucwords, которая переводит в верхний регистр первый символ каждого слова строки. Но, как и с другими функциями, работающими со строками, есть проблема при работе с кириллицей в кодировке utf-8. Поэтому, стоит использовать эти функции только для обработки латиницы. А при работе с кириллицей корректней будет использовать функцию mb_convert_case. Она может выполнять сразу несколько операций: переводить всю строку в верхний или нижний регистр и переводить в верхний регистр все первые символы каждого слова в строке.
Пример:

// исходная строка
$string = "text latin";
// перевод в верхний регистр первого символа строки
$ucfirst = ucfirst($string);
// вывод результата
echo "ucfirst: $ucfirst<br/>";

// перевод первых символов каждого слова 
// в верхний регистр
$ucwords = ucwords($string);
// вывод результата
echo "ucwords: $ucwords<br/>";


// исходная строка
$string = "строка из ЧЕТЫРЕХ слов";

// перевод всех символов в верхний регистр. 
// Кодировка UTF-8
$upper = mb_convert_case($string, MB_CASE_UPPER, "UTF-8");
// вывод результата
echo "upper: $upper<br/>";

// перевод всех символов в нижний регистр. 
// Кодировка UTF-8
$lower = mb_convert_case($string, MB_CASE_LOWER , "UTF-8");
// вывод результата
echo "lower: $lower<br/>";

// перевод первых символов каждого слова 
// в верхний регистр. Кодировка UTF-8
$case_title = mb_convert_case($string, MB_CASE_TITLE , "UTF-8");
// вывод результата
echo "case_title: $case_title<br/>";

// перевод в верхний регистр первого символа строки
// получаем первый символ строки
$first_char = mb_substr($string, 0, 1, 'UTF-8');
// переводим первый символ в верхний регистр
$first_upper = mb_convert_case($first_char, 'UTF-8');
// берем от строки все символы, кроме первого
$all_characters = mb_substr($string, 1, mb_strlen($string), 'UTF-8');
// соединяем первый символ и все остальные
$result = $first_upper . $all_characters;
// вывод результата
echo "result: $result<br/>";
Рассказать друзьям:


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*