Перевести буквы в строчный php

strtoupper

Возвращает строку string , в которой все буквенные символы ASCII переведены в верхний регистр.

Байты в диапазоне от «a» (0x61) до «z» (0x7a) будут преобразованы в соответствующую заглавную букву путём вычитания 32 из каждого значения байта.

Функцию можно использовать для преобразования символов ASCII в строках, закодированных в UTF-8, поскольку многобайтовые символы UTF-8 будут проигнорированы. Для преобразования многобайтовых не ASCII символов используйте функцию mb_strtoupper() .

Список параметров

Возвращаемые значения

Возвращает строку в верхнем регистре.

Список изменений

Версия Описание
8.2.0 Преобразование регистра больше не зависит от локали, установленной с помощью функции setlocale() . Будут преобразованы только символы ASCII.

Примеры

Пример #1 Пример использования strtoupper()

$str = «Mary Had A Little Lamb and She LOVED It So» ;
$str = strtoupper ( $str );
echo $str ; // выводит: MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • strtolower() — Преобразует строку в нижний регистр
  • ucfirst() — Преобразует первый символ строки в верхний регистр
  • ucwords() — Преобразует в верхний регистр первый символ каждого слова в строке
  • mb_strtoupper() — Приведение строки к верхнему регистру
Читайте также:  Typescript оператор вопросительный знак

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:

setlocale ( LC_CTYPE , ‘de_DE.UTF8’ );

echo strtoupper ( ‘Umlaute äöü in uppercase’ ); // outputs «UMLAUTE äöü IN UPPERCASE»
echo mb_strtoupper ( ‘Umlaute äöü in uppercase’ , ‘UTF-8’ ); // outputs «UMLAUTE ÄÖÜ IN UPPERCASE»

Here is how to make the character in upper case, except HTML-entities:

There is small kludge, however. Unfortunately I tired to find out the way how to exclude HTML-entity at the start of the line, so I have added 1 dummy character at the start of the text and removing it after the conversion.

something I myself first not thought about:
if there are any html entities (named entities) in your string, strtoupper will turn all letters within this entities to upper case, too. So if you want to manipulate a string with strtoupper it should contain only unicode entities (if ever).

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:

function strtoupper_utf8($string) $string=utf8_decode($string);
$string=strtoupper($string);
$string=utf8_encode($string);
return $string;
>

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:

It has been mentioned in a previous comment that all you need to do to let PHP’s strtoupper() do the conversion — instead of writing more or less complicated functions yourself — is to specify the locale in which you’re doing the case conversion:

It is important to note that setlocale() will silently fail if it can’t find the specified locale on your system, so *always* check its return value. Try different spellings: using «de_AT» as an example, there are various combinations that may or may not work for you: «de», «de_AT.utf8», «de_AT.iso-8859-1», «de_AT.latin1», «de_AT@euro», etc).

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):

define ( «LATIN1_UC_CHARS» , «ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ» );
define ( «LATIN1_LC_CHARS» , «àáâãäåæçèéêëìíîïðñòóôõöøùúûüý» );

function uc_latin1 ( $str ) $str = strtoupper ( strtr ( $str , LATIN1_LC_CHARS , LATIN1_UC_CHARS ));
return strtr ( $str , array( «ß» => «SS» ));
>

Источник

Замена регистра в строках 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;
>

Авторизуйтесь, чтобы добавить комментарий.

Источник

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
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • 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 ));
>

Источник

Оцените статью