最新公告
  • 欢迎您光临波比源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • PHP字符截取函数,兼容各类gbk,utf-8编码

    在PHP中字符截取函数substr只能截取全英文才不会出现乱码如果里面有中文肯定是无法截取的,下面小编来给大家介绍两个兼容各类gbk,utf-8编码字符串截取函数,实例代码如下:

    1. function CsubStrPro($str$start$length$charset = "utf-8"$suffix = false) 
    2.     if (function_exists ( "mb_substr" )) 
    3.         return mb_substr ( $str$start$length$charset ); 
    4.     $re ['utf-8'] = "/[x01-x7f]|[xc2-xdf][x80-xbf]|[xe0-xef][x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/"
    5.     $re ['gb2312'] = "/[x01-x7f]|[xb0-xf7][xa0-xfe]/"
    6.     $re ['gbk'] = "/[x01-x7f]|[x81-xfe][x40-xfe]/"
    7.     $re ['big5'] = "/[x01-x7f]|[x81-xfe]([x40-x7e]|xa1-xfe])/"
    8.     preg_match_all ( $re [$charset], $str$match ); 
    9.     $slice = join ( ""array_slice ( $match [0], $start$length ) ); 
    10.     if ($suffix
    11.         return $slice . "…"
    12.     return $slice

    实例代码二:

    1. function subString_UTF8($str$start$lenth
    2.    { 
    3.        $len = strlen($str); 
    4.        $r = array(); 
    5.        $n = 0; 
    6.        $m = 0; 
    7.        for($i = 0; $i < $len$i++) { 
    8.            $x = substr($str$i, 1); 
    9.            $a  = base_convert(ord($x), 10, 2); 
    10.            $a = substr('00000000'.$a, -8); 
    11.            if ($n < $start){ 
    12.                if (substr($a, 0, 1) == 0) { 
    13.                }elseif (substr($a, 0, 3) == 110) { 
    14.                    $i += 1; 
    15.                }elseif (substr($a, 0, 4) == 1110) { 
    16.                    $i += 2; 
    17.                } 
    18.                $n++; 
    19.            }else
    20.                if (substr($a, 0, 1) == 0) { 
    21.                    $r[ ] = substr($str$i, 1); 
    22.                }elseif (substr($a, 0, 3) == 110) { 
    23.                    $r[ ] = substr($str$i, 2); 
    24.                    $i += 1; 
    25.                }elseif (substr($a, 0, 4) == 1110) { 
    26.                    $r[ ] = substr($str$i, 3); 
    27.                    $i += 2; 
    28.                }else
    29.                    $r[ ] = ''
    30.                } 
    31.                if (++$m >= $lenth){ 
    32.                    break
    33.                } 
    34.            } 
    35.        } 
    36.        return $r
    37.    } // End subString_UTF8; 
    38. // End String 

    由于此函数返回的是一个数组,因此要配合join函数来显示字符串:join('',subString_UTF8($str, $start, $lenth));,在页面显示的时候还可以在此语句后面连一个"…"

    波比源码 – 精品源码模版分享 | www.bobi11.com
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

    波比源码 » PHP字符截取函数,兼容各类gbk,utf-8编码

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    波比源码
    一个高级程序员模板开发平台
    升级波友尊享更多特权立即升级