截取英文字符串的函数:substr();

但是有个问题就是截取中文字符串时,一个中文相当于2个或者3个英文字符串的字节数,

解决办法:

1、用mb_substr()函数,它有第四个参数可以指定编码格式;

2、开启php.ini的中文字符串的扩展,即extension=php_mbstring.dll;这个扩展开启之后可以用Smarty模板引擎中的truncate调节器;

3、重新封装一个截取字符串的函数:

  function mbsubstr( $str, $start, $len){

    $strlen = $start + $len;

    for( $i=$start; $i<$strlen; $i++ ){

      if( ord( substr( $str, $i, 1)) > 0xa0){

        if( charset == utf-8){ return substr( $str, $i, 3);}

        elseif( charset == gb2312){ return substr( $str, $i, 2);}

      }else{

        return substr($str, $i, 1);

      }

    }

  }