3v4l.org

run code in 300+ PHP versions simultaneously
<?php function substr_utf8($string, $start, $length) { $chars = $string; $i=0; do { if (preg_match ("/[0-9a-zA-Z]/", $chars[$i])){ $m++; } else { $n++; }//非英文字节, $k = $n/3 + $m/2; $l = $n/3 + $m; $i++; } while ($k < $length); $str1 = mb_substr($string,$start,$l,'utf-8'); return $str1; } $a = '测试这是一个测试'; $a = 'xxxxbbbbbnnn'; $b = substr_utf8($a,0,5); var_dump($b); ?>

preferences:
41.71 ms | 402 KiB | 5 Q