//截取utf8字符串
function utf8Substr($str, $from, $len)
{
    return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
                       '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
                       '$1',$str);
}上面这个函数我用着还好,不过当字符串太长的时候(比如上万字的文章),其就无法正常工作了,返回会为空。比如utf8Substr($str, 0, 100)可以正常工作,但如果是utf8Substr($str, 1000, 100),其就无法正常工作了。请问大家这个问题怎么解决呢?我认为其似乎开始的地方不能偏移太多,就是$from不能太大,那么能不能反向截取呢?本人对正则实在很白痴,请大家看看怎么解决呢?