Для смены регистра в строке существует не малое количество функций.
Чтобы перевести все символы строки в нижний регистр существует две функции —
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/>";