PHP中截取UTF-8中文字符串
2014-01-04 09:35
441 查看
在CMS文章系统或者是新闻系统中,经常需要进行字符串截取来进行页面排版,所以下面介绍简单的中文字符串截取不乱码的方法:
该处是引用的THINKPHP中的中文字符串截取,还是蛮实用的!
/** * * @todo 截取中文字符串不乱码 * @param string $str * @param int $start * @param int $length * @param string $charset * @param string $suffix */ 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); }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; }
该处是引用的THINKPHP中的中文字符串截取,还是蛮实用的!
相关文章推荐
- 共享:在UTF-8编码情况下PHP截取中文字符串的代码
- PHP utf-8中文截取无乱码(字符串判断版本)
- php截取utf-8中文字符串乱码的解决方法
- php截取中文字符串 GB2312 utf-8
- PHP中截取UTF-8中文字符串
- PHP字符串截取函数(解决中文乱码问题!支持UTF-8和GB2312)
- PHP 中文字符串截取函数(UTF-8)有效
- 用php截取utf-8中文字符串乱码的解决方法
- PHP 截取中文字符串 UTF-8
- php字符串截取函数(支持中文 utf-8截取)
- [PHP] - 中文字符串截取(UTF-8与非UTF-8)
- php截取utf-8中文字符串乱码的解决方法
- PHP UTF-8字符串截断函数实现中文字符的无乱码截断
- php的中文字符串截取
- PHP中文字符串截取类
- PHP----字符串(支持中文和其它编码)截取,后加自定义标识符
- 如何利用PHP来截取一段中文字符串而不出现乱码
- PHP截取中文字符串方法总结
- php中支持多种编码的中文字符串截取函数!
- PHP(UTF)截取字符串乱码问题