PHP Conference Japan 2024

grapheme_strlen

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_strlen获取字符串以 grapheme 单位表示的长度

描述

过程式风格

grapheme_strlen(string $string): int|false|null

获取字符串以 grapheme 单位表示的长度(而不是字节或字符)。

参数

string

要测量长度的字符串。它必须是一个有效的 UTF-8 字符串。

返回值

成功时返回字符串的长度,失败时返回 false

范例

示例 #1 grapheme_strlen() 例子

<?php

$char_a_ring_nfd
= "a\xCC\x8A"; // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) 规范化形式 "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) 规范化形式 "D"

print grapheme_strlen( 'abc' . $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd);

?>

以上示例将输出

6

参见

添加注释

用户贡献的注释 1 条注释

jonhoggg at gmail dot com
2 年前
您可以使用 grapheme_strlen() 将表情符号计算为单个字符

<?php
echo strlen('🏴󠁧󠁢󠁥󠁮󠁧󠁿'); //28 - 哦不
echo mb_strlen('🏴󠁧󠁢󠁥󠁮󠁧󠁿'); // - 更接近,但没有
echo grapheme_strlen('🏴󠁧󠁢󠁥󠁮󠁧󠁿'); //1 - Bingo
?>
To Top