RFC karma request: grapheme_str_pad()

From: Date: Thu, 29 Oct 2026 22:00:35 +0000
Subject: RFC karma request: grapheme_str_pad()
Groups: php.internals 
Request: Send a blank email to internals+get-132967@lists.php.net to get a copy of this message
Hi internals, I'd like to request RFC karma on the wiki to propose a new function, grapheme_str_pad(). My wiki username is: chrisabner It is the grapheme cluster counterpart of str_pad() and mb_str_pad(), as suggested in the Future Scope of the mb_str_pad RFC [1]. The length is counted in grapheme clusters, like grapheme_strlen() does: grapheme_str_pad(string $string, int $length, string $pad_string = " ", int $pad_type = STR_PAD_RIGHT): string|false mb_str_pad() counts code points, so the same visible text gets different padding depending on how it is encoded, and the padding string can be cut inside a grapheme cluster: mb_str_pad("Caf\u{00E9}", 6, '.'); // "Café.." mb_str_pad("Cafe\u{0301}", 6, '.'); // "Café." (NFD: one dot less) mb_str_pad("a", 4, "u\u{0308}o\u{0308}"); // "aüo" (ö lost its diaeresis) grapheme_str_pad("Cafe\u{0301}", 6, '.'); // "Café.." grapheme_str_pad("a", 4, "u\u{0308}o\u{0308}"); // "aüöü" Errors and edge cases follow mb_str_pad(); invalid UTF-8 returns false like grapheme_strlen(). I have an implementation with tests in ext/intl and will open a pull request together with the RFC. I'll open the formal [RFC] discussion thread once the wiki page is up. [1] https://wiki.php.net/rfc/mb_str_pad#future_scope Thanks, Chris Abner Herrera Navarro

« previous php.internals (#132967) next »