On 23/06/2021 22:28, Christoph M. Becker wrote:
substr() is about bytes, not characters.  They all may have upvoted the
wrong answer.  The only correct answer has just 17 upvotes.


Just to out-pedant you, I'll point out that what most people would think of as a "character" is neither a byte nor a code point, but a grapheme, so I would say *none* of the answers on that page is correct.

$string = 'Zoë'; // "Zoe\u{0308}" not "Zo\u{00EB}"

var_dump(substr($string, -1));
var_dump(mb_substr($string, -1));
var_dump(grapheme_substr($string, -1));

string(1) "�"
string(2) "̈"
string(3) "ë"

https://3v4l.org/IMoWQ


Regards,

--
Rowan Tommins
[IMSoP]

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to