3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php function _uniord($c) { if (ord($c{0}) >=0 && ord($c{0}) <= 127) return ord($c{0}); if (ord($c{0}) >= 192 && ord($c{0}) <= 223) return (ord($c{0})-192)*64 + (ord($c{1})-128); if (ord($c{0}) >= 224 && ord($c{0}) <= 239) return (ord($c{0})-224)*4096 + (ord($c{1})-128)*64 + (ord($c{2})-128); if (ord($c{0}) >= 240 && ord($c{0}) <= 247) return (ord($c{0})-240)*262144 + (ord($c{1})-128)*4096 + (ord($c{2})-128)*64 + (ord($c{3})-128); if (ord($c{0}) >= 248 && ord($c{0}) <= 251) return (ord($c{0})-248)*16777216 + (ord($c{1})-128)*262144 + (ord($c{2})-128)*4096 + (ord($c{3})-128)*64 + (ord($c{4})-128); if (ord($c{0}) >= 252 && ord($c{0}) <= 253) return (ord($c{0})-252)*1073741824 + (ord($c{1})-128)*16777216 + (ord($c{2})-128)*262144 + (ord($c{3})-128)*4096 + (ord($c{4})-128)*64 + (ord($c{5})-128); if (ord($c{0}) >= 254 && ord($c{0}) <= 255) // error return FALSE; return 0; } var_dump(_uniord('А')); $line = "Какова сумма номеров символов Unicode во всем этом вопросе?"; for($i = 0; $i < mb_strlen($line); $i++) { var_dump($line[$i]); }
based on tan2i
Output for 5.6.0 - 5.6.30, hhvm-3.15.4, 7.0.0 - 7.3.0beta1
int(1040) string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "U" string(1) "n" string(1) "i"