mb_substr是PHP中专门用于处理多字节字符的字符串截取函数,相比普通的substr函数,它能正确处理中文、日文等多字节字符。
mb_substr函数依赖mbstring扩展,如果未启用该扩展会导致函数不可用。
// 检查mbstring扩展是否启用
var_dump(extension_loaded('mbstring'));
mb_substr需要正确的编码设置才能正常工作,常见编码问题包括:
mb_substr的参数顺序和类型要求严格:
// 正确用法
mb_substr($str, $start, $length, $encoding);
在php.ini中启用扩展:
extension=mbstring
推荐统一设置:
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
确保:
如果无法使用mbstring,可以考虑:
// 使用iconv
iconv_substr($str, $start, $length, 'UTF-8');
// 正则表达式方案
preg_match('/^.{1,'.$length.'}/us', $str, $matches);