略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: IntlChar::tolower

2024-04-28

IntlChar::tolower

(PHP 7, PHP 8)

IntlChar::tolowerMake Unicode character lowercase

说明

public static IntlChar::tolower(int|string $codepoint): int|string|null

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

参数

codepoint

The int codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")

返回值

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

The return type will be int 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)

参见

add a noteadd a note

User Contributed Notes 2 notes

up
0
Patanjali
2 years 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
-1
Patanjali
2 years 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;
}
?>

官方地址:https://www.php.net/manual/en/intlchar.tolower.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3