Supondo que
$str
é codificado em UTF-8:function maxThreeBytes($str) {
return preg_match('@[\\xf0-\\xff][\\x80-\\xff][\\x80-\\xff][\\x80-\\xff]@', $str) ? false : true;
}
Ele verifica se a string contém quatro caracteres que correspondem a
11110xxxb 10xxxxxxb 10xxxxxxb 10xxxxxxb
que é a codificação para caracteres entre U+10000 e U+10FFFF.