//计算字符串长度 function strlen_utf8($str) { $i = 0; $count = 0; $len = strlen ($str); while ($i < $len) { $chr = ord ($str[$i]); $count++; $i++; if($i >= $len) break; if($chr & 0x80) { $chr <<= 1; while ($chr & 0x80) { $i++; $chr <<= 1; } } } return $count; }
ord() 函数返回字符串的首个字符的 ASCII 值。
$chr <<= 1; 是位运算相当于$chr = $chr << 1。
差点看不懂了……