International PHP Conference Berlin 2025

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 начинать поиск в виде смещения в единицах графемы (не в байтах или символах). Если смещение отрицательное, оно обрабатывается относительно конца строки. Возвращённая позиция по-прежнему относительно начала haystack, независимо от значения offset.

Возвращаемые значения

Возвращает позицию как целое число. Если вхождение 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) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) normalization form "D"

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

?>

Результат выполнения приведённого примера:

2

Смотрите также

Добавить

Примечания пользователей 1 note

up
0
Anonymous
6 years ago
As expected, grapheme_stripos() does return boolean FALSE if the needle is not found in the haystack.
Use strict type comparison to check for that condition, like:

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