// 出现乱码
var_dump(substr('在线学习编程', 0, 4));
// 在�

// 截取正常
var_dump(mb_substr('在线学习编程', 0, 4));
// 在线学习

参考
PHP中使用substr()截取字符串出现中文乱码问题该怎么办