function mb_strcut($str, $start, $length = 0, $encoding = '') { global $mbemu_internals; $encoding = mb_detect_encoding($str, $encoding); switch ($e = $mbemu_internals['encoding'][$encoding]) { case 0: //ascii //ascii case 1: //euc-jp //euc-jp case 2: //shift-jis //shift-jis case 4: //utf-8 //utf-8 case 5: //utf-16 //utf-16 case 6: //iso-8859-1 preg_match_all('/' . $mbemu_internals['regex'][$e] . '/', $str, $arr); return _sub_strcut($arr, $start, $length); case 3: //jis $str = mb_convert_encoding($str, 'SJIS', 'JIS'); preg_match_all('/' . $mbemu_internals['regex'][2] . '/', $str, $arr); $sub = _sub_strcut($arr, $start, $length); return mb_convert_encoding($sub, 'JIS', 'SJIS'); } }
function mb_strcut($str, $start, $length = 0, $encoding = '') { global $_mb_encoding, $euc_match, $utf8_match, $sjis_match; $encoding = _get_encoding($str, $encoding); switch ($_mb_encoding[$encoding]) { case 1: //euc-jp preg_match_all("/{$euc_match}/", $str, $arr); return _sub_strcut($arr, $start, $length); case 0: //ascii return substr($str, $start, $length); case 4: //utf-8 preg_match_all("/{$utf8_match}/", $str, $arr); return _sub_strcut($arr, $start, $length); case 2: //shift-jis preg_match_all("/{$sjis_match}/", $str, $arr); return _sub_strcut($arr, $start, $length); case 3: //jis $str = mb_convert_encoding($str, 'SJIS', 'JIS'); preg_match_all("/{$sjis_match}/", $str, $arr); $sub = _sub_strcut($arr, $start, $length); return mb_convert_encoding($sub, 'JIS', 'SJIS'); } }