PHP Conference Japan 2024

grapheme_substr

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

grapheme_substr返回字符串的一部分

描述

过程式风格

grapheme_substr(string $string, int $offset, ?int $length = null): string|false

返回字符串的一部分

参数

string

输入字符串。必须是有效的 UTF-8。

offset

以默认字符单元为单位的起始位置。如果 offset 为非负数,则返回的字符串将从 string 中的第 offset 个位置开始,从零开始计数。如果 offset 为负数,则返回的字符串将从字符串末尾的第 offset 个字符单元开始。

length

以字符单元为单位的长度。如果指定了 length 并且为正数,则返回的字符串将最多包含从 offset 开始的 length 个字符单元(取决于字符串的长度)。如果指定了 length 并且为负数,则将从字符串末尾省略那么多字符单元(在计算 offset 为负数时的起始位置之后)。如果 offset 表示超出此截断的位置,则将返回空字符串。

返回值

返回 string 的提取部分,或者在失败时返回 false

变更日志

版本 描述
8.0.0 此函数现在始终将越界偏移量限制在字符串边界内。以前,在某些情况下返回的是 false 而不是空字符串。

范例

例 1 grapheme_substr() 例子

<?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 urlencode(grapheme_substr( "ao" . $char_a_ring_nfd . "bc" . $char_o_diaeresis_nfd . "O", 2, -1 ));
?>

以上示例将输出

a%CC%8Abco%CC%88

参见

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top