Казалось бы, что может быть проще перевести строку в верхний или нижний регистр, используя PHP. Но даже в такой простой операции бывают свои подводные камни.
Рассмотрим не совсем правильный метод перевода строки в нужный регистр.
Пусть у нас есть строка $str = "Hello hello"; Изменим ее следующими комбинациями:
echo strtolower($str); //Все буквы маленькие hello hello
echo strtoupper($str); //Все буквы БОЛЬШИЕ HELLO HELLO
Также, хочу отметить эти две команды, которые могут пригодиться в редких ситуациях:
echo ucfirst("hello hello"); //первая буква заглавная Hello
echo ucwords("hello hello"); //первая буква каждого слова заглавная Hello Hello
Но минус перечисленных функций в том, что они не работают с кириллицей
Преобразование в нужный регистр согласно русских символов.
Эти функции работают с кириллицей utf8 - надо указывать кодировку
$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(" Пробел "); // "Пробел" в начале и конце строки
Добавить комментарий