PHP RFC: Add locale for case insensitive grapheme functions
- Version: 0.9
- Date: 2025-06-07
- Author: Yuya Hamada, youkidearitai@gmail.com
- Status: Draft
- First Published at: https://wiki.php.net/rfc/grapheme_add_locale_for_case_insensitive
Introduction
A grapheme functions is not locale dependency. This RFC is add locale parameter for grapheme case insensitive functions.
- grapheme_stripos
- grapheme_strripos
- grapheme_stristr
By this RFC can cover locale. For example.
var_dump(grapheme_stripos("i", "\u{0130}", 0, "tr_TR")); // Result is 0 var_dump(grapheme_stripos("i", "\u{0130}", 0, "en_US")); // Result is false
If this RFC is accept, I would go to new RFC for grapheme_icontains (Locale dependency and case-insensitive of str_contains). Because grapheme function is not locale dependency now.
Proposal
Add a $locale parameter in these functions.
function grapheme_stripos(string $haystack, string $needle, int $offset = 0, ?string $locale = null): int|false function grapheme_strripos(string $haystack, string $needle, int $offset = 0, ?string $locale = null): int|false function grapheme_stristr(string $haystack, string $needle, bool $beforeNeedle = false, ?string $locale = null): string|false
Backward Incompatible Changes
Maybe nothing.
Proposed PHP Version(s)
8.5
RFC Impact
To SAPIs
No effects.
To Existing Extensions
No effects.
To Opcache
No effects.
New Constants
No effects.
Open Issues
Nothing.
Future Scope
This section details areas where the feature might be improved in future, but that are not currently proposed in this RFC.
Proposed Voting Choices
Include these so readers know where you are heading and can discuss the proposed voting options.
Patches and Tests
Implementation
References
Rejected Features
Keep this updated with features that were discussed on the mail lists.