php перевести строку в нижний регистр
strtolower
(PHP 4, PHP 5, PHP 7, PHP 8)
strtolower — Преобразует строку в нижний регистр
Описание
Принадлежность того или иного символа к буквенным определяется с учётом текущей локали. Это означает, что, например, в используемой по умолчанию локали «C», символ Ä не будет преобразован.
Список параметров
Возвращаемые значения
Возвращает строку в нижнем регистре.
Примеры
Пример #1 Пример использования strtolower()
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Смотрите также
User Contributed Notes 16 notes
strtolower(); doesn’t work for polish chars
for cyrillic and UTF 8 use mb_convert_case
//output is: австралия
?>
the function arraytolower will create duplicate entries since keys are case sensitive.
I prefer this method
Array
(
[test1] => asgafasdaad
[TEST2] => asddhshsdgb
[TeSt3] => asdasda@asdadadasdasdgh
)
Array
(
[test1] => asgafasdaad
[test2] => asddhshsdgb
[test3] => asdasda@asdadadasdasdgh
)
echo fullLower ( «Ã É Ò Õ ÚÙÛ» );
//results ã é ò õ úùû
//adapted from fullUpper on strtoupper manual
?>
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:
If you’re considering using the below unhtmlentities function from phpContrib, I would suggest this one as an alternative:
There’s a ucfirst «function» to make the first character uppercase, but there’s no «lcfirst» function to make the first character lowercase. Here’s my own code to accomplish this.
I found this particularly useful for generating XML nodes with the Reflection class.
Heres a small function I wrote to stop people from submitting data that is ALL IN CAPS SO THEY CAN GET MORE ATTENTION THAT THE REST OF THE USER SUBMITTED DATA on my website 🙂 If you can make it better, by all means do so. This function splits up words delimited by a space, and makes only the first letter of each word capitalized. You can easily modify it so it’s only the very first word of the string. I’ve also added some exceptions so you don’t make things like roman numerals look like «Iii» or «Xcmii» or something.
function RemoveShouting($string)
<
$lower_exceptions = array(
«to» => «1», «a» => «1», «the» => «1», «of» => «1»
);
$higher_exceptions = array(
«I» => «1», «II» => «1», «III» => «1», «IV» => «1»,
«V» => «1», «VI» => «1», «VII» => «1», «VIII» => «1»,
«XI» => «1», «X» => «1»
);
To do case insensitive comparisons in a database, strtolower() can be a quick and dirty solution:
$Sql = «SELECT * FROM tablename WHERE LOWER(column_name) = ‘».strtolower($my_var).»‘»;
the strtolower version to support most amount of languages including russian, french and so on:
To convert an entire array to lower, I prefer this method;
If you ever need to strtolower a string with href tags on it and doesn’t want to mess with the characters inside a tag, this is for you.
?>
this:
echo loweroutsidetags(‘aALalala ‘)
Привести строку в нужный регистр PHP
Казалось бы, что может быть проще перевести строку в верхний или нижний регистр, используя PHP. Но даже в такой простой операции бывают свои подводные камни.
Рассмотрим не совсем правильный метод перевода строки в нужный регистр.
echo strtolower($str); //Все буквы маленькие hello hello
echo strtoupper($str); //Все буквы БОЛЬШИЕ HELLO HELLO
Также, хочу отметить эти две команды, которые могут пригодиться в редких ситуациях:
echo ucfirst(«hello hello»); //первая буква заглавная Hello
echo ucwords(«hello hello»); //первая буква каждого слова заглавная Hello Hello
Но минус перечисленных функций в том, что они не работают с кириллицей
Преобразование в нужный регистр согласно русских символов.
$str = «у мэри»;
echo mb_convert_case($str, MB_CASE_UPPER, «UTF-8»); // У МЭРИ
echo mb_convert_case($str, MB_CASE_TITLE, «UTF-8»); // У Мэри
echo mb_convert_case($str, MB_CASE_LOWER, «UTF-8»); // у мэри
Поэтому рекомендую использовать чаще mb_convert_case, она более универсальна.
Бонусом приведу пару PHP функций, которые всегда могут пригодиться.
Выводит строку, которая начинается с поискового запроса и до конца
echo strstr («Поиск строки начинается», «стро»); // выводит «строки начинается»
Возвращает номер символа, с которого начинается подстрока. Работает в windows-1251
echo strpos («Кто там?», «там»); // выводит «4»
echo strpos (iconv (‘utf-8’, ‘windows-1251’, «Кто там?»), iconv (‘utf-8’, ‘windows-1251’, «там»)); // выводит «4». Работает в utf-8
Удаляют пробелы в строке ltrim, chop, trim
echo ltrim(» Пробел «); // «Пробел » в начале строки
echo chop(» Пробел «); // » Пробел» в конце строки
echo trim(» Пробел «); // «Пробел» в начале и конце строки
Сегодня разберем функцию strtolower, которая преобразует строку в нижний регистр. Т.е. все буквы делает строчными в php. Попробуем разобраться в ошибках связанных с функцией strtolower, примеры strtolower, напишем свою функцию для кириллицы преобразующие большие буквы в маленькие, но не только о strtolower, но и коснемся mb-strtolower.
Естественно нужно начать с определения даннйо функции:
Все о функции strtolower
Что такое strtolower
Синтаксис функции strtolower
Разбор синтаксиса функции strtolower
Использование strtolower:
Самое удобное, поместить в переменную текст, который пропускается через функцию и получается соответствующая строка.
Ну и далее оборачиваем переменную функцией strtolower:
И выводим результат с помощью echo
Пример использования strtolower для латиницы:
Далее применим к данной строке strtolower с использованием функции echo :
Результат применения strtolower к английскому тексту, который написан «ПРОПИСНЫМИ»
После этого можем переходить к кириллице!
Использование strtolower для кириллицы:
Опять поступаем со строкой, как в выше идущем пункте:
Расположим данный вывод прямо здесь и получим:
Мы видим, что ничего у нас не произошло…
Почему не сработала функция strtolower
Насколько я понимаю, что проблема в данном случае с кодировкой utf-8 для кириллицы! Дело в том, что кириллица в данной кодировке имеет не один символ а два. и strtolower просто не понимает, что от него хотят.
Чтобы показать в живую, чем отличается кириллица от латиницы:
Strtolower не работает для кириллицы
Но если например мы будем использовать данную функцию в таком виде:
То получим такой результат:
��� �������� �����, ������� ����� �������������� ��������� ���������� Чтобы mb_strtolower заработала с кириллицей UTF-8 ей нужно придать кодировку, таким образом:
Смотрим, что у нас в итоге получилось:
это тестовый текст, который будет иллюстрировать поведение стролловер
Собственная функция Strtolower для кириллицы!
Сталкивались с Strtolower для кириллицы!? Или может вы использовали mb-strtolower для кириллицы!? Эти функции работали и как впечатление!?
Когда в последний раз меня вывела из себя функция mb-strtolower – оказывается – эту хрень еще и подключать надо! Какая важная фифа, что она может даже быть и отключенная! Не то, что я не могу разобраться, как её включить – но просто это так достало, что просто нет тех слов цензурных слов, которые могли бы выразить все то, что я им хочу сказать!
Сделаем собственную функцию Strtolower для кириллицы!
Нам нужна такая функция Strtolower для кириллицы, чтобы она работала всегда и везде и чтобы больше никогда я не встречался с этой проблемой – мы просто напишем собственную функцию Strtolower для кириллицы!
Нам понадобится массив, который представляет из себя ключ – Большая кириллическая буква(верхний регистр = «ПРОПИСНЫЕ»), значение маленькая кириллическая буква(нижний регистр = «строчные»)
Еще нам понадобится функция strtr – которая преобразует найденные ключи в значения!
2). Поместим наш тестовый текст с прописными буквами в переменную
И обработаем дальше уже нашей функцией Strtolower для кириллицы
Результат работы собственной функции для кириллицы!
Собственная функция Strtolower для кириллицы и латиницы!
Пойдем дальше! Чем каждый раз вспоминать,какая функция работает там, работает сям! Сделаем функцию для кириллицы и латиницы, дарю:
Теперь давайте испытаем, сразу на двух текстах. что мы сделаем!?
Выведем наши текста таикм образом:
Результат работы собственной функции strollower
Онлайн функция Strtolower для текста!
Теперь на нашем сайте вы можете привести весь текст, который так или иначе написан с включением больших(прописных) букв, превратить в текст написанный строчными, т.е. маленькими!
Как работает онлайн Strtolower
В поле ввода пишем или вставляем текст ПРОПИСНЫМИ! И нажимаем отправить! И вы получите результат! Пока только Русский и английский языки!
Сообщение системы комментирования :
Форма пока доступна только админу. скоро все заработает. надеюсь.
strtolower
strtolower — Преобразует строку в нижний регистр
Описание
Принадлежность того или иного символа к буквенным определяется с учетом текущей локали. Это означает, что, например, в используемой по умолчанию локали «C», символ Ä не будет преобразован.
Список параметров
Возвращаемые значения
Возвращает строку в нижнем регистре.
Примеры
Пример #1 Пример использования strtolower()
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Смотрите также
Коментарии
Heres a small function I wrote to stop people from submitting data that is ALL IN CAPS SO THEY CAN GET MORE ATTENTION THAT THE REST OF THE USER SUBMITTED DATA on my website 🙂 If you can make it better, by all means do so. This function splits up words delimited by a space, and makes only the first letter of each word capitalized. You can easily modify it so it’s only the very first word of the string. I’ve also added some exceptions so you don’t make things like roman numerals look like «Iii» or «Xcmii» or something.
function RemoveShouting($string)
<
$lower_exceptions = array(
«to» => «1», «a» => «1», «the» => «1», «of» => «1»
);
$higher_exceptions = array(
«I» => «1», «II» => «1», «III» => «1», «IV» => «1»,
«V» => «1», «VI» => «1», «VII» => «1», «VIII» => «1»,
«XI» => «1», «X» => «1»
);
To do case insensitive comparisons in a database, strtolower() can be a quick and dirty solution:
$Sql = «SELECT * FROM tablename WHERE LOWER(column_name) = ‘».strtolower($my_var).»‘»;
There’s a ucfirst «function» to make the first character uppercase, but there’s no «lcfirst» function to make the first character lowercase. Here’s my own code to accomplish this.
If you’re considering using the below unhtmlentities function from phpContrib, I would suggest this one as an alternative:
If you ever need to strtolower a string with href tags on it and doesn’t want to mess with the characters inside a tag, this is for you.
?>
this:
echo loweroutsidetags(‘aALalala ‘)
will give:
aalalala
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:
echo fullLower ( «Ã É Ò Õ ÚÙÛ» );
//results ã é ò õ úùû
//adapted from fullUpper on strtoupper manual
?>
the function arraytolower will create duplicate entries since keys are case sensitive.
I prefer this method
Array
(
[test1] => asgafasdaad
[TEST2] => asddhshsdgb
[TeSt3] => asdasda@asdadadasdasdgh
)
Array
(
[test1] => asgafasdaad
[test2] => asddhshsdgb
[test3] => asdasda@asdadadasdasdgh
)
for cyrillic and UTF 8 use mb_convert_case
//output is: австралия
?>
the strtolower version to support most amount of languages including russian, french and so on:
strtolower(); doesn’t work for polish chars
To convert an entire array to lower, I prefer this method;
When the locale is set to «utf8» or «C» I can’t get strtolower() to convert accented characters encoded as UTF-8, so here is my workaround.
print( tolower ( ‘DÉJÀ-VU’ )); // prints déjà-vu
?>
Change the language-country codes if you want some language other than French.
strtoupper
(PHP 4, PHP 5, PHP 7, PHP 8)
strtoupper — Преобразует строку в верхний регистр
Описание
Принадлежность того или иного символа к буквенным определяется с учётом текущей локали. Это означает, что, например, в используемой по умолчанию локали «C», символ ä не будет преобразован.
Список параметров
Возвращаемые значения
Возвращает строку в верхнем регистре.
Примеры
Пример #1 Пример использования strtoupper()
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Смотрите также
User Contributed Notes 16 notes
One might think that setting the correct locale would do the trick with for example german umlauts, but this is not the case. You have to use mb_strtoupper() instead:
Here is how to make the character in upper case, except HTML-entities:
If you only need to extend the conversion by the characters of a certain language, it’s possible to control this using an environment variable to change the locale:
When using UTF-8 and need to convert to uppercase with
special characters like the german ä,ö,ü (didn’t test for french,polish,russian but think it should work, too) try this:
If you can’t find an appropriate locale setting, check your system configuration (locales are a system-wide setting, PHP gets them from the OS). On Windows, locales can be set from the Control Panel; on Linux it depends on your distribution. You can try «sudo dpkg-reconfigure locales» on Debian-based distros, or configure them manually. On Ubuntu Dapper, I had to copy entries over from /usr/share/i18n/SUPPORTED to /var/lib/locales/supported.d/local, then do the dpkg-reconfigure.
After you’re done, restart the web server.
That said, there are special cases where you want to do the conversion manually. In German, for example, the letter ‘ß’ (szlig) only exists as a lower-case character, and so doesn’t get converted by strtoupper. The convential way to express a ‘ß’ in an uppercase string is «SS». This function will take care of this exception (for Latin1 and most of Latin9, at least):