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;
}
?>IntlChar::tolower
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
IntlChar::tolower
Референца за `intlchar.tolower.php` со подобрена типографија и навигација.
IntlChar::tolower
Интерфејсот SessionUpdateTimestampHandlerInterface
IntlChar::tolower — Направи Unicode карактер со мали букви
= NULL
Дадениот карактер се мапира на неговиот еквивалент со мали букви. Ако карактерот нема еквивалент со мали букви, се враќа самиот оригинален карактер.
Параметри
Вратени вредности
Враќа Simple_Lowercase_Mapping на кодната точка, ако постои; инаку самата кодна точка. Враќа null при неуспех.
Типот на враќање е int освен ако кодната точка не е предадена како UTF-8 string, во кој случај се враќа string се враќа. Враќа null при неуспех.
Примери
Пример #1 Тестирање различни точки на код
<?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")));
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
string(1) "a" string(1) "a" string(2) "φ" string(2) "φ" string(1) "1" int(97) int(97)
Види Исто така
- IntlChar::totitle() - Направете Unicode карактер со големи почетни букви
- IntlChar::toupper() - Направете Unicode карактер со големи букви
- mb_strtolower() - Направи стринг со мали букви