- Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
- bool(true)
<?php
function seems_utf8($str) {
$length = strlen($str);
for ($i = 0; $i < $length; $i++) {
$c = ord($str[$i]);
if ($c < 0x80) $n = 0;
elseif (($c & 0xE0) == 0xC0) $n = 1;
elseif (($c & 0xF0) == 0xE0) $n = 2;
elseif (($c & 0xF8) == 0xF0) $n = 3;
elseif (($c & 0xFC) == 0xF8) $n = 4;
elseif (($c & 0xFE) == 0xFC) $n = 5;
else return false;
for ($j=0; $j<$n; $j++) {
if ((++$i == $length) || ((ord($str[$i]) & 0xC0) != 0x80)) return false;
}
}
return true;
}
var_dump( seems_utf8("asd") );