Commit 896653dbd27 for php

commit 896653dbd2748af42a76538c53959980411e68a6
Author: Kamil Tekiela <tekiela246@gmail.com>
Date:   Wed Sep 30 18:19:43 2026 +0100

    ext/mbstring: Validate and flag UTF-8 in mb_strlen() to improve performance (#24024)

diff --git a/UPGRADING b/UPGRADING
index c46af00cfe2..9692bfd9b2c 100644
--- a/UPGRADING
+++ b/UPGRADING
@@ -89,3 +89,6 @@ PHP 8.7 UPGRADE NOTES
   . Improved performance of array_splice() when inserting without removing
     elements.
   . Improved performance of str_rot13().
+
+- MBString:
+  . Improved performance of mb_strlen for UTF-8 strings.
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index c701a23183b..1fbb9e52415 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -1836,7 +1836,7 @@ static size_t mb_get_strlen(zend_string *string, const mbfl_encoding *encoding)
 	unsigned int char_len = encoding->flag & (MBFL_ENCTYPE_SBCS | MBFL_ENCTYPE_WCS2 | MBFL_ENCTYPE_WCS4);
 	if (char_len) {
 		return ZSTR_LEN(string) / char_len;
-	} else if (php_mb_is_no_encoding_utf8(encoding->no_encoding) && ZSTR_IS_VALID_UTF8(string)) {
+	} else if (php_mb_is_no_encoding_utf8(encoding->no_encoding) && mb_check_str_encoding(string, &mbfl_encoding_utf8)) {
 		return mb_fast_strlen_utf8((unsigned char*)ZSTR_VAL(string), ZSTR_LEN(string));
 	}