wpseek.com
Eine auf WordPress spezialiserte Suchmaschine für Entwickler und Theme-Autoren



_wp_utf8_codepoint_count › WordPress Function

Seit6.9.0
Veraltetn/v
_wp_utf8_codepoint_count ( $text, $byte_offset = 0, $max_byte_length = PHP_INT_MAX )
Zugriff:
  • private
Parameter: (3)
  • (string) $text Count code points in this string.
    Erforderlich: Ja
  • (?int) $byte_offset Start counting after this many bytes in `$text`. Must be positive.
    Erforderlich: Nein
    Standard:
  • (?int) $max_byte_length Optional. Stop counting after having scanned past this many bytes. Default is to scan until the end of the string. Must be positive.
    Erforderlich: Nein
    Standard: PHP_INT_MAX
Gibt zurück:
  • (int) How many code points were found.
Definiert in:
Codex:

Returns how many code points are found in the given UTF-8 string.

Invalid spans of bytes count as a single code point according to the maximal subpart rule. This function is a fallback method for calling mb_strlen( $text, 'UTF-8' ). When negative values are provided for the byte offsets or length, this will always report zero code points. Example: 4 === _wp_utf8_codepoint_count( 'text' ); // Groups are 'test', "x90" as '�', 'wp', "xE2x80" as '�', "xC0" as '�', and 'test'. 13 === _wp_utf8_codepoint_count( "testx90wpxE2x80xC0test" );


Quellcode

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;
}