PHP Conference Japan 2024

grapheme_stripos

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

grapheme_stripos查找不区分大小写的字符串首次出现的位置(以音素单位计)

描述

过程式风格

grapheme_stripos(string $haystack, string $needle, int $offset = 0): int|false

查找不区分大小写的字符串首次出现的位置(以音素单位计)

参数

haystack

要搜索的字符串。必须是有效的 UTF-8。

needle

要查找的字符串。必须是有效的 UTF-8。

offset

可选的 offset 参数允许您指定在 haystack 中从何处开始搜索,作为音素单位(而不是字节或字符)的偏移量。如果偏移量为负,则将其视为相对于字符串末尾的偏移量。无论 offset 的值如何,返回的位置仍然相对于 haystack 的开头。

返回值

返回位置作为整数。如果未找到 needle,则 grapheme_stripos() 将返回 false

变更日志

版本 描述
7.1.0 已添加对负 offset 的支持。

示例

示例 #1 grapheme_stripos() 示例

<?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"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) 规范化形式 "D"

print grapheme_stripos( $char_a_ring_nfd . $char_a_ring_nfd . $char_o_diaeresis_nfd, $char_O_diaeresis_nfd);

?>

以上示例将输出

2

参见

添加注释

用户贡献的注释 1 个注释

匿名
6 年前
如预期的那样,如果在 haystack 中找不到 needle,则 grapheme_stripos() 会返回布尔值 FALSE。
使用严格类型比较来检查该条件,例如

if (FALSE === grapheme_stripos('a', 'b')) {print 'Needle not found';}
To Top