PHP字符截取函数,兼容各类gbk,utf-8编码
发布:smiling 来源: PHP粉丝网 添加日期:2014-01-08 15:12:48 浏览: 评论:0
在PHP中字符截取函数substr只能截取全英文才不会出现乱码如果里面有中文肯定是无法截取的,下面小编来给大家介绍两个兼容各类gbk,utf-8编码字符串截取函数,实例代码如下:
- function CsubStrPro($str, $start, $length, $charset = "utf-8", $suffix = false)
- {
- if (function_exists ( "mb_substr" ))
- return mb_substr ( $str, $start, $length, $charset );
- $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 ) );
- if ($suffix)
- return $slice . "…";
- return $slice;
- }
实例代码二:
- function subString_UTF8($str, $start, $lenth)
- {
- $len = strlen($str);
- $r = array();
- $n = 0;
- $m = 0;
- for($i = 0; $i < $len; $i++) {
- $x = substr($str, $i, 1);
- $a = base_convert(ord($x), 10, 2);
- $a = substr('00000000'.$a, -8);
- if ($n < $start){
- if (substr($a, 0, 1) == 0) {
- }elseif (substr($a, 0, 3) == 110) {
- $i += 1;
- }elseif (substr($a, 0, 4) == 1110) {
- $i += 2;
- }
- $n++;
- }else{
- if (substr($a, 0, 1) == 0) {
- $r[ ] = substr($str, $i, 1);
- }elseif (substr($a, 0, 3) == 110) {
- $r[ ] = substr($str, $i, 2);
- $i += 1;
- }elseif (substr($a, 0, 4) == 1110) {
- $r[ ] = substr($str, $i, 3);
- $i += 2;
- }else{
- $r[ ] = '';
- }
- if (++$m >= $lenth){
- break;
- }
- }
- }
- return $r;
- } // End subString_UTF8;
- // End String
由于此函数返回的是一个数组,因此要配合join函数来显示字符串:join('',subString_UTF8($str, $start, $lenth));,在页面显示的时候还可以在此语句后面连一个"..."
Tags: PHP字符 截取 函数
- 上一篇:php随机生成字符串一些方法总结
- 下一篇:php 文件中随机取出一条数据
相关文章
- ·php从指定位置开始替换字符方法(2014-05-23)
- ·php字符串比较详细说明(2014-05-31)
- ·PHP字符串操作的一些函数(2014-06-08)
- ·PHP中英数字混排字符串的截取(2014-08-02)
- ·php字符串与中文字符拆分方法(2014-08-04)
- ·php字符串截取代码(2014-08-16)
- ·php获取字符串uft-8编码(2014-08-17)
- ·PHP字符串加密解密程序例子(2014-08-21)
- ·php中生成随机字符串的函数(2014-08-23)
- ·php字符前加上反斜杠,包括 单引号、双引号、反斜杠(2014-08-25)
- ·php用户自定过滤非法sql注入字符串函数(2014-08-25)
- ·php 防注入与字符反过滤代码(2014-08-25)
- ·php字符串截取,支持中文和其他编码(2014-08-28)
- ·php实现字符转URL实现代码(2014-09-12)
- ·php字符串字符处理函数详解(2014-09-13)
- ·php字符串处理函数详解(2014-09-13)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)