LaravelConf Taiwan 2020 CFP Started

IntlChar::tolower

(PHP 7)

IntlChar::tolowerMake Unicode character lowercase

Description

public static IntlChar::tolower ( mixed $codepoint ) : mixed

The given character is mapped to its lowercase equivalent. If the character has no lowercase equivalent, the original character itself is returned.

Liste de paramètres

codepoint

La valeur codepoint de type integer (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type string (i.e. "\u{2603}")

Valeurs de retour

Returns the Simple_Lowercase_Mapping of the code point, if any; otherwise the code point itself.

Le type retourné sera integer tant que le codepoint a été passé en une chaîne de type string encodée en UTF-8, auquel cas, une string sera retournée.

Exemples

Exemple #1 Test de différents codepoint

<?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")));
?>

L'exemple ci-dessus va afficher :

string(1) "a"
string(1) "a"
string(2) "φ"
string(2) "φ"
string(1) "1"
int(97)
int(97)

Voir aussi

add a note add a note

User Contributed Notes 2 notes

up
0
Patanjali
15 days ago
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;
}
?>
up
0
Patanjali
4 months ago
A function to convert a Unicode string to lowercase, directly replacing mb_strtolower, by converting one grapheme at a time:

<?php
function u_tolower($text=''){
// if blank, return blank (don't waste CPU cycles)
if($text==''){return '';}

// for each grapheme
$str='';
for(
$i=0;$i<grapheme_strlen($text);$i++){
 
// add to string if alpha, else as is
 
$char=grapheme_substr($text,$i,1);
 
$str.=(IntlChar::isalnum($char)?IntlChar::tolower($char):$char);
}

// return converted text
return $str;
}
?>
To Top