這篇文章主要介紹了支持中文和其他編碼的php截取字符串函數示例(截取中文字符串),需要的朋友可以參考下。
簡單的字符串截取方法,支持中文和其他編碼,傳入相對應的參數直接調用就可以了,代碼如下:
- /**
- * 字符串截取,支持中文和其他編碼
- * @static
- * @access public
- * @param string $str 需要轉換的字符串
- * @param string $start 開始位置
- * @param string $length 截取長度
- * @param string $charset 編碼格式
- * @param string $suffix 截斷顯示字符
- * @return string
- */
- function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) {
- if(function_exists("mb_substr"))
- $slice = mb_substr($str, $start, $length, $charset);
- elseif(function_exists('iconv_substr')) {
- $slice = iconv_substr($str,$start,$length,$charset);
- if(false === $slice) {
- $slice = '';
- }
- }else{
- $re['utf-8'] = "/[/x01-/x7f]|[/xc2-/xdf][/x80-/xbf]|[/xe0-/xef][/x80-/xbf]{2}|[/xf0-/xff][/x80-/xbf]{3}/";
- $re['gb2312'] = "/[/x01-/x7f]|[/xb0-/xf7][/xa0-/xfe]/";
- $re['gbk'] = "/[/x01-/x7f]|[/x81-/xfe][/x40-/xfe]/";
- $re['big5'] = "/[/x01-/x7f]|[/x81-/xfe]([/x40-/x7e]|/xa1-/xfe])/";
- preg_match_all($re[$charset], $str, $match);
- $slice = join("",array_slice($match[0], $start, $length));
- }
- return $suffix ? $slice.'...' : $slice;
- }
新聞熱點
疑難解答