count_chars for multibyte supported.
<?php
function mb_count_chars ($string, $mode = 0) {
$result = array_fill(0, 256, 0);
for ($i = 0, $size = mb_strlen($string); $i < $size; $i++) {
$char = mb_substr($string, $i, 1);
if (strlen($char) > 1) {
continue;
}
$code = ord($char);
if ($code >= 0 && $code <= 255) {
$result[$code]++;
}
}
switch ($mode) {
case 1: foreach ($result as $key => $value) {
if ($value == 0) {
unset($result[$key]);
}
}
break;
case 2: foreach ($result as $key => $value) {
if ($value > 0) {
unset($result[$key]);
}
}
break;
case 3: $buildString = '';
foreach ($result as $key => $value) {
if ($value > 0) {
$buildString .= chr($key);
}
}
return $buildString;
case 4: $buildString = '';
foreach ($result as $key => $value) {
if ($value == 0) {
$buildString .= chr($key);
}
}
return $buildString;
}
foreach ($result as $key => $value) {
$result[chr($key)] = $value;
unset($result[$key]);
}
return $result;
}
?>