# _wp_utf8_codepoint_count()

URL: https://chugunov.pro/api-wordpress/functions/_wp_utf8_codepoint_count/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 6.9.0.

## Сигнатура

```php
_wp_utf8_codepoint_count( string $text, ?int $byte_offset, ?int $max_byte_length = PHP_INT_MAX ): int
```

## Описание

Участки некорректных байтов считаются одной кодовой точкой согласно правилу максимальной подчасти. Эта функция является резервным методом для вызова mb_strlen( $text, 'UTF-8' ).
Если для смещений в байтах или длины передаются отрицательные значения, функция всегда сообщит о нуле кодовых точек.
Пример:
4 === _wp_utf8_codepoint_count( 'text' );

// Groups are 'test', "\x90" as '�', 'wp', "\xE2\x80" as '�', "\xC0" as '�', and 'test'.
13 === _wp_utf8_codepoint_count( "test\x90wp\xE2\x80\xC0test" );

## Параметры

- `$text` `string` — обязательный. Подсчитать кодовые точки в этой строке.
- `$byte_offset` `?int` — обязательный. Начать подсчёт после указанного количества байтов в $text. Должно быть положительным.
- `$max_byte_length` `?int` — необязательный, по умолчанию `PHP_INT_MAX`. Прекратить подсчёт после сканирования указанного количества байтов.
  
  По умолчанию сканирование продолжается до конца строки. Должно быть положительным.

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

`int`

## Исходный код

Файл: `wp-includes/compat-utf8.php:341`

```php
function _wp_utf8_codepoint_count( string $text, ?int $byte_offset = 0, ?int $max_byte_length = PHP_INT_MAX ): int {
	if ( $byte_offset < 0 ) {
		return 0;
	}

	$count           = 0;
	$at              = $byte_offset;
	$end             = strlen( $text );
	$invalid_length  = 0;
	$max_byte_length = min( $end - $at, $max_byte_length );

	while ( $at < $end && ( $at - $byte_offset ) < $max_byte_length ) {
		$count += _wp_scan_utf8( $text, $at, $invalid_length, $max_byte_length - ( $at - $byte_offset ) );
		$count += $invalid_length > 0 ? 1 : 0;
		$at    += $invalid_length;
	}

	return $count;
}
```

## История изменений

- 6.9.0 — Introduced.

## Связанные

Использует: [`_wp_scan_utf8`](https://chugunov.pro/api-wordpress/functions/_wp_scan_utf8/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/_wp_utf8_codepoint_count/
