Zakładając, że $str
jest zakodowany w UTF-8:
function maxThreeBytes($str) {
return preg_match('@[\\xf0-\\xff][\\x80-\\xff][\\x80-\\xff][\\x80-\\xff]@', $str) ? false : true;
}
Sprawdza, czy ciąg zawiera cztery znaki, które pasują do 11110xxxb 10xxxxxxb 10xxxxxxb 10xxxxxxb
czyli kodowanie znaków od U+10000 do U+10FFFF.