3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php function ordutf8($string, &$offset) { $code = ord(substr($string, $offset,1)); if ($code >= 128) { //otherwise 0xxxxxxx if ($code < 224) $bytesnumber = 2; //110xxxxx else if ($code < 240) $bytesnumber = 3; //1110xxxx else if ($code < 248) $bytesnumber = 4; //11110xxx $codetemp = $code - 192 - ($bytesnumber > 2 ? 32 : 0) - ($bytesnumber > 3 ? 16 : 0); for ($i = 2; $i <= $bytesnumber; $i++) { $offset ++; $code2 = ord(substr($string, $offset, 1)) - 128; //10xxxxxx $codetemp = $codetemp*64 + $code2; } $code = $codetemp; } $offset += 1; if ($offset >= strlen($string)) $offset = -1; return $code; } $text = "abcàê߀abc"; $offset = 0; while ($offset >= 0) { echo $offset.": ".ordutf8($text, $offset)."\n"; } ?>
based on 3GNH4
Output for 5.5.0 - 7.3.0rc4
0: 97 1: 98 2: 99 3: 224 5: 234 7: 223 9: 8364 12: 97 13: 98 14: 99