- strtolower
- Список параметров
- Возвращаемые значения
- Список изменений
- Примеры
- Примечания
- Смотрите также
- User Contributed Notes 16 notes
- Php перевести в нижний регистра
- Обращение к символам строки
- Специальные функции и расширение mbstring
- Функции strpos() и mb_strpos()
- Функция strrpos()
- Функция trim()
- Изменение регистра
- Функция strlen()
- Получение подстроки
- Замена подстрок
- mb_strtolower
- Список параметров
- Возвращаемые значения
- Юникод
- Примеры
- Смотрите также
- Замена регистра в строках PHP
- Проверка, является ли буква прописной или строчной
- Первая заглавная буква
- Для UTF-8:
- Первая строчная
- Для UTF-8:
- Все заглавные буквы
- Для UTF-8:
- Все строчные буквы
- Для UTF-8:
- Заглавная буква в каждом слове
- Для UTF-8:
- Инверсия регистра
- Комментарии 1
strtolower
Возвращает строку string , в которой все буквенные символы ASCII переведены в нижний регистр.
Байты в диапазоне от «A» (0x41) до «Z» (0x5a) будут преобразованы в соответствующую строчную букву путём добавления 32 к каждому значению байта.
Функцию можно использовать для преобразования символов ASCII в строках, закодированных в UTF-8, поскольку многобайтовые символы UTF-8 будут проигнорированы. Для преобразования многобайтовых не ASCII символов используйте функцию mb_strtolower() .
Список параметров
Возвращаемые значения
Возвращает строку в нижнем регистре.
Список изменений
Версия | Описание |
---|---|
8.2.0 | Преобразование регистра больше не зависит от локали, установленной с помощью функции setlocale() . Будут преобразованы только символы ASCII. |
Примеры
Пример #1 Пример использования strtolower()
$str = «Mary Had A Little Lamb and She LOVED It So» ;
$str = strtolower ( $str );
echo $str ; // выводит: mary had a little lamb and she loved it so
?>?php
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Смотрите также
- strtoupper() — Преобразует строку в верхний регистр
- ucfirst() — Преобразует первый символ строки в верхний регистр
- ucwords() — Преобразует в верхний регистр первый символ каждого слова в строке
- mb_strtolower() — Приведение строки к нижнему регистру
User Contributed Notes 16 notes
strtolower(); doesn’t work for polish chars
the best solution — use mb_strtolower()
for cyrillic and UTF 8 use mb_convert_case
$string = «Австралия» ;
$string = mb_convert_case ( $string , MB_CASE_LOWER , «UTF-8» );
echo $string ;
the function arraytolower will create duplicate entries since keys are case sensitive.
$array = array( ‘test1’ => ‘asgAFasDAAd’ , ‘TEST2’ => ‘ASddhshsDGb’ , ‘TeSt3 ‘ => ‘asdasda@asdadadASDASDgh’ );
$array = arraytolower ( $array );
?>
/*
Array
(
[test1] => asgafasdaad
[TEST2] => ASddhshsDGb
[TeSt3] => asdasda@asdadadASDASDgh
[test2] => asddhshsdgb
[test3] => asdasda@asdadadasdasdgh
)
*/
function arraytolower ( $array , $include_leys = false )
if( $include_leys ) <
foreach( $array as $key => $value ) <
if( is_array ( $value ))
$array2 [ strtolower ( $key )] = arraytolower ( $value , $include_leys );
else
$array2 [ strtolower ( $key )] = strtolower ( $value );
>
$array = $array2 ;
>
else <
foreach( $array as $key => $value ) <
if( is_array ( $value ))
$array [ $key ] = arraytolower ( $value , $include_leys );
else
$array [ $key ] = strtolower ( $value );
>
>
return $array ;
>
?>
which when used like this
$array = $array = array( ‘test1’ => ‘asgAFasDAAd’ , ‘TEST2’ => ‘ASddhshsDGb’ , ‘TeSt3 ‘ => ‘asdasda@asdadadASDASDgh’ );
$array1 = arraytolower ( $array );
$array2 = arraytolower ( $array , true );
print_r ( $array1 );
print_r ( $array2 );
?>
will give output of
Array
(
[test1] => asgafasdaad
[TEST2] => asddhshsdgb
[TeSt3] => asdasda@asdadadasdasdgh
)
Array
(
[test1] => asgafasdaad
[test2] => asddhshsdgb
[test3] => asdasda@asdadadasdasdgh
)
When you’re not sure, how the current locale is set, you might find the following function useful. It’s strtolower for utf8-formatted text:
function strtolower_utf8 ( $inputString ) $outputString = utf8_decode ( $inputString );
$outputString = strtolower ( $outputString );
$outputString = utf8_encode ( $outputString );
return $outputString ;
>
?>
It’s not suitable for every occasion, but it surely gets in handy. I use it for lowering German ‘Umlauts’ like ä and ö.
function strtolower_slovenian ( $string )
$low =array( «Č» => «č» , «Ž» => «ž» , «Š» => «š» );
return strtolower ( strtr ( $string , $low ));
>
Php перевести в нижний регистра
Строки играют большую роль, задачи на парсинг строк довольно часто встречаются в PHP , поэтому рассмотрим некоторые базовые функции работы со строками.
Строки представляют некоторый текст, который заключен в одинарные или двойные кавычки:
$str1 = "Hello"; $str2 = 'Welcome';
Но также PHP позволяет определить строку и без кавычек с помощью оператора
В данном случае «LABEL» — это название метки, которая указывает на начало и конец строки. Название метки произвольное. То есть все, что расположено между
И в данном случае, как и в обычной строке мы можем использовать переменные:
Обращение к символам строки
PHP позволяет обращаться к отдельным символам строки как к элементам массива по числовому индексу:
$str = "Hello Tom"; echo $str[0];// получим первый символ - H $str[1] = "i"; // поменяем второй символ echo "
" . $str . "
"; // Hillo Tom
Индексация символов, как и в массиве, начинается с нуля.
Специальные функции и расширение mbstring
Кроме некоторых базовых возможностей по работе со строками PHP также предоставляет ряд специальных функций. Для некоторых из них требуется подключить специальное расширение — mbstring.dll . Для подключения этого расширения откроем файл конфигурации PHP — php.ini и найдем в нем следующую строку:
Раскомментируем ее, убрав точку с запятой.
Также убедимся, что у нас указан путь к папке расширений.
Найдем в файле php.ini строку:
Эта строка указывает на каталог с подключаемыми расширениями для PHP. По умолчанию все расширения располагаются в папке ext . Раскомментируем эту строку, убрав точку с запятой, и укажем полный путь к папке ext . Так, в моем случае папка c php расположена в корне диска C (ОС Windows), соответственно я указываю путь «C:\php\ext»:
И так как у нас файл php.ini изменился, перезапустим веб-сервер Apache.
Подключение расширения mbstring позволит задействовать некоторые дополнительные функции для работы со строками, которые в стандартном наборе PHP отсутствуют (такие функции обычно начинаются с префикса mb_ ).
Функции strpos() и mb_strpos()
Функция strpos($str, $search) возвращает позицию подстроки или символа $search в строке $str или значение false , если строка $str не содержит подстроки $search:
$input = «This is the end»; $search = «is»; $position = strpos($input, $search); // 2 if($position!==false)
При использовании этой функции надо учитывать, что индексация символов в строке начинается с нуля, поэтому позиция символа «T» будет равна 0. Поэтому сравнение $position!=false будет работать некорректно, ведь false и 0 при сравнении и приведении к общему типу будут представлять одно и то же значение. Поэтому в данном случае корректно использовать только операцию эквивалентности: $position!==false или $position===false .
Теперь применим функцию на другом примере:
$input = "Мама мыла раму"; $search = "мы"; $position = strpos($input, $search); // 9
Неожиданно, но результатом функции будет число 9. Хотя мы видим, что истинная позиция подстроки «мы» в исходной строке равна 5.
Все дело в том, что некоторые строковые функции не всегда корректно обрабатывают кириллические символы, и для них лучше использовать другую функцию — mb_strpos() :
$position = mb_strpos($input, $search); // 5
Функция strrpos()
Функция strrpos() во многом аналогична функции strpos() , только ищет позицию не первого, а последнего вхождения подстроки в строку:
$input = "This is the end"; $search = "is"; $position = strrpos($input, $search); // 5
Но опять же данная функция не совсем корректно работает с кириллическими символами, поэтому нам надо использовать ее аналог — mb_strrpos() :
$position = mb_strrpos($input, $search);
Функция trim()
Функция trim($str) удаляет из строки начальные и конечные пробелы, а также управляющие символы \n, \r, \t:
$input = " Мама мыла раму "; $input = trim($input);
Изменение регистра
Для перевода строки в нижний регистр используется функция strtolower :
$input = "The World is Mine"; $input = strtolower($input);
Для перевода в нижний регистр строки с кириллическими символами можно использовать функцию mb_strtolower :
$input = mb_strtolower($input);
Для перевода строки в верхний регистр примеяются функции strtoupper() / mb_ strtoupper() , которые работают аналогично.
Функция strlen()
Функция strlen() возвращает длину строки, то есть количество символов в ней:
$input = "Hello world"; $num = strlen($input); echo $num;
Функция strlen() также некорректно работает с кириллицей, поэтому в этом случае лучше применять функцию mb_strlen() :
$input = "Мама мыла раму"; $num = mb_strlen($input); echo $num;
Получение подстроки
Применяя функцию substr($str, $start [, $length]) , можно получить из одной строки ее определенную часть. Данная функция обрезает строку $str, начиная c символа в позиции $start до конца строки. С помощью дополнительного необязательного параметра $length можно задать количество вырезаемых символов.
$input = "The world is mine!"; $subinput1 = substr($input, 2); $subinput2 = substr($input, 2, 6); echo $subinput1; echo "
"; echo $subinput2;
Так как данная функция некорректно работает с кириллицей, то вместо нее следует применять функцию mb_substr() , которая действует аналогично:
$input = "Мама мыла раму"; $subinput1 = mb_substr($input, 2); $subinput2 = mb_substr($input, 2, 6);
Замена подстрок
Для замены определенной части строки применяется функция str_replace($old, $new, $input) . Эта функция заменяет в строке $input все вхождения подстроки $old на подстроку $new с учетом регистра:
$input = "Мама мыла раму"; $input = str_replace("мы", "ши", $input); echo $input;
mb_strtolower
Возвращает строку str , буквенные символы в которой приведены к нижнему регистру.
Список параметров
Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.
Возвращаемые значения
str , буквы в которой приведены к нижнему регистру.
Юникод
За дополнительной информацией о свойствах Юникода обращайтесь в » http://www.unicode.org/unicode/reports/tr21/.
В отличие от strtolower() , то что символ является буквой определяется на основании свойств символа Юникода. Таким образом на поведение функции не влияют региональные настройки системы, а также функция может преобразовывать символы, имеющие буквенные особенности, такие как А-умляут (Ä).
Примеры
Пример #1 Пример использования mb_strtolower()
$str = «У Мэри Был Маленький Ягненок и Она Его Очень ЛЮБИЛА» ;
$str = mb_strtolower ( $str );
echo $str ; // Выведет у мэри был маленький ягненок и она его очень любила
?>?php
Пример #2 Пример использования mb_strtolower() с нелатинскими буквами
$str = «Τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός» ;
$str = mb_strtolower ( $str , ‘UTF-8’ );
echo $str ; // Выведет τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός
?>?php
Смотрите также
- mb_strtoupper() — Приведение строки к верхнему регистру
- mb_convert_case() — Производит смену регистра символов в строке
- strtolower() — Преобразует строку в нижний регистр
Замена регистра в строках PHP
Список PHP-функций для изменения регистра символов в строках и примеры их использования.
Проверка, является ли буква прописной или строчной
Функция ctype_upper($string) – определяет, являются ли все буквы в строке в верхнем регистре.
$str = 'Ы'; if (ctype_upper($str)) < echo 'Заглавная'; >else
Вариант для кириллицы в кодировке UTF-8:
$str = 'Ы'; if (mb_strtolower($str) !== $str) < echo 'Заглавная'; >else < echo 'строчная'; >// Выведется «Заглавная»
Пример определения регистра для первой буквы в строке:
$text = 'Привет мир!'; $chr = mb_substr($text, 0, 1); if (mb_strtolower($chr) !== $chr) < echo 'Заглавная'; >else < echo 'строчная'; >// Выведется «Заглавная»
Первая заглавная буква
ucfirst($string) — преобразует первый символ строки в верхний регистр.
$text = 'привет Мир!'; echo ucfirst($text);
Для UTF-8:
if(!function_exists('mb_ucfirst')) < function mb_ucfirst($str) < $fc = mb_strtoupper(mb_substr($str, 0, 1)); return $fc . mb_substr($str, 1); >> $text = 'привет Мир!'; echo mb_ucfirst($text); // Привет Мир!
Первая строчная
ucfirst($string) — преобразует первый символ строки в верхний регистр.
$text = 'Привет Мир!'; echo lcfirst($text);
Для UTF-8:
if(!function_exists('mb_lcfirst')) < function mb_lcfirst($str) < $fc = mb_strtolower(mb_substr($str, 0, 1)); return $fc . mb_substr($str, 1); >> $text = 'Привет Мир!'; echo mb_lcfirst($text); // привет Мир!
Все заглавные буквы
Для UTF-8:
$text = 'привет Мир!'; echo mb_strtoupper($text); // ПРИВЕТ МИР!
Все строчные буквы
$text = 'Привет Мир!'; echo strtolower($text);
Для UTF-8:
$text = 'Привет Мир!'; echo mb_strtolower($text); // привет мир!
Заглавная буква в каждом слове
$text = 'привет мир!'; echo ucwords($text);
Для UTF-8:
if(!function_exists('mb_ucwords')) < function mb_ucwords($str) < $str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8"); return ($str); >> $text = 'привет мир!'; echo mb_ucwords($text); // Привет Мир!
Инверсия регистра
function mb_flip_case($string) < $characters = preg_split('/(?$char) < if (mb_strtolower($char, "UTF-8") != $char) < $char = mb_strtolower($char, 'UTF-8'); >else < $char = mb_strtoupper($char, 'UTF-8'); >$characters[$key] = $char; > return implode('', $characters); > $text = 'Привет Мир!'; echo mb_flip_case($text); // пРИВЕТ мИР!
Комментарии 1
function invertCase($text)
$string = »;
/*
Решение №1
$mb_strlen = mb_strlen($text);
$i = $mb_strlen;
while ($i > 0) $i—;
$char = mb_substr($text, $i, 1);
$char = (mb_strtolower($char) === $char) ? mb_strtoupper($char) : mb_strtolower($char);
$string = $char.$string;
>
*/
// Решение №2
$arr = mb_str_split($text, 1);
foreach ($arr as $char) $char = (mb_strtolower($char) === $char) ? mb_strtoupper($char) : mb_strtolower($char);
$string .= $char;
>
return $string;
>
Авторизуйтесь, чтобы добавить комментарий.