IntlChar::tolower
(PHP 7)
IntlChar::tolower — Make Unicode character lowercase
Описание
The given character is mapped to its lowercase equivalent. If the character has no lowercase equivalent, the original character itself is returned.
Список параметров
Возвращаемые значения
Returns the Simple_Lowercase_Mapping of the code point, if any; otherwise the code point itself.
The return type will be integer unless the code point was passed as a UTF-8 string, in which case a string will be returned.
Примеры
Пример #1 Testing different code points
<?php
var_dump(IntlChar::tolower("A"));
var_dump(IntlChar::tolower("a"));
var_dump(IntlChar::tolower("Φ"));
var_dump(IntlChar::tolower("φ"));
var_dump(IntlChar::tolower("1"));
var_dump(IntlChar::tolower(ord("A")));
var_dump(IntlChar::tolower(ord("a")));
?>
Результат выполнения данного примера:
string(1) "a" string(1) "a" string(2) "φ" string(2) "φ" string(1) "1" int(97) int(97)
Смотрите также
- IntlChar::totitle() - Make Unicode character titlecase
- IntlChar::toupper() - Make Unicode character uppercase
- mb_strtolower() - Приведение строки к нижнему регистру
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Поддержка языков и кодировок
- Internationalization Functions
- IntlChar::charAge
- IntlChar::charDigitValue
- IntlChar::charDirection
- IntlChar::charFromName
- IntlChar::charMirror
- IntlChar::charName
- IntlChar::charType
- IntlChar::chr
- IntlChar::digit
- IntlChar::enumCharNames
- IntlChar::enumCharTypes
- IntlChar::foldCase
- IntlChar::forDigit
- IntlChar::getBidiPairedBracket
- IntlChar::getBlockCode
- IntlChar::getCombiningClass
- IntlChar::getFC_NFKC_Closure
- IntlChar::getIntPropertyMaxValue
- IntlChar::getIntPropertyMinValue
- IntlChar::getIntPropertyValue
- IntlChar::getNumericValue
- IntlChar::getPropertyEnum
- IntlChar::getPropertyName
- IntlChar::getPropertyValueEnum
- IntlChar::getPropertyValueName
- IntlChar::getUnicodeVersion
- IntlChar::hasBinaryProperty
- IntlChar::isalnum
- IntlChar::isalpha
- IntlChar::isbase
- IntlChar::isblank
- IntlChar::iscntrl
- IntlChar::isdefined
- IntlChar::isdigit
- IntlChar::isgraph
- IntlChar::isIDIgnorable
- IntlChar::isIDPart
- IntlChar::isIDStart
- IntlChar::isISOControl
- IntlChar::isJavaIDPart
- IntlChar::isJavaIDStart
- IntlChar::isJavaSpaceChar
- IntlChar::islower
- IntlChar::isMirrored
- IntlChar::isprint
- IntlChar::ispunct
- IntlChar::isspace
- IntlChar::istitle
- IntlChar::isUAlphabetic
- IntlChar::isULowercase
- IntlChar::isupper
- IntlChar::isUUppercase
- IntlChar::isUWhiteSpace
- IntlChar::isWhitespace
- IntlChar::isxdigit
- IntlChar::ord
- IntlChar::tolower
- IntlChar::totitle
- IntlChar::toupper
Коментарии
The other function I wrote to replace mb_strtolower may not work properly, as it erroneously equated graphemes with codepoints.
tolower, like many IntlChar methods, works specifically on codepoints, so requires a codepoint iterator to isolate each.
Also, because in tolower, if there is no lowercase version of the codepoint, the supplied one is returned, so there is no need to specially test for alphabetic codepoints before conversion.
<?php
function u_tolower($text=''){
// if blank, return blank (don't waste CPU cycles)
if($text==''){return'';}
// create the codepoint break iterator to identify the start of each codepoint
$iterator=IntlBreakIterator::createCodePointInstance();
// load the text
$iterator->setText($text);
// using a parts iterator to extract each codepoint itself, convert and append it to the new string
$newtext='';
foreach($iterator->getPartsIterator() as $codepoint){$newtext.=IntlChar::tolower($codepoint);}
// return converted text
return $newtext;
}
?>