public static function getLength($str)
    {
        $bytes = 0;
        $chars = 0;
        while ($bytes < strlen($str)) {
            $charBytes = 1;
            if ((ord($str[$bytes]) & 0xC0) == 0xC0) {
                $charBytes++;
                if (ord($str[$bytes]) & 0x20 ) {
                    $charBytes++;
                    if (ord($str[$bytes]) & 0x10 ) {
                        $charBytes++;
                    }
                }
            }

            if ($bytes + $charBytes > strlen($str)) {
                // wrong character
                break;
            }

            $chars++;
            $bytes += $charBytes;
        }

        return $chars;
    }
public static function getLength($str)
    {
        $bytes = 0;
        $chars = 0;
        while ($bytes < strlen($str)) {
            $charBytes = 1;
            if ((ord($str[$bytes]) & 0xC0) == 0xC0) {
                $charBytes++;
                if (ord($str[$bytes]) & 0x20 ) {
                    $charBytes++;
                    if (ord($str[$bytes]) & 0x10 ) {
                        $charBytes++;
                    }
                }
            }

            if ($bytes + $charBytes > strlen($str)) {
                // wrong character
                break;
            }

            $chars++;
            $bytes += $charBytes;
        }

        return $chars;
    }
public static function getLength ( $ str ) { $ bytes = 0 ; $ chars = 0 ; while ( $ bytes < strlen ( $ str ) ) { $ charBytes = 1 ; if ( ( ord ( $ str [ $ bytes ] ) & 0xC0 ) == 0xC0 ) { $ charBytes ++ ; if ( ord ( $ str [ $ bytes ] ) & 0x20 ) { $ charBytes ++ ; if ( ord ( $ str [ $ bytes ] ) & 0x10 ) { $ charBytes ++ ; } } } if ( $ bytes + $ charBytes > strlen ( $ str ) ) { // wrong character break ; } $ chars ++ ; $ bytes += $ charBytes ; } return $ chars ; }
Get UTF-8 string length

@param  string $str
@return string
Get UTF - 8 string length