PHP中文字符串截取函数

转载 2006年05月17日 15:54:00
<?php
#============================================================================
# 参数说明:
# $fStr:需要截最的原始字符串;
# $fStart:从第几个汉字后开始载取,从头开始截取使用 0
# $fLen:截取几个汉字
# $fCode:原始字符串的编码方式,默认为 gb2312 或 big5,UTF-8 按 UTF-8 编码方式截取
#----------------------------------------------------------------------------
Function msubstr ($fStr, $fStart, $fLen, $fCode = "") {
    switch ($fCode) {
        case "UTF-8" :
            preg_match_all("/[/x01-/x7f]|[/xc2-/xdf][/x80-/xbf]|/xe0[/xa0-/xbf][/x80-/xbf]|[/xe1-/xef][/x80-/xbf][/x80-/xbf]|/xf0[/x90-/xbf][/x80-/xbf][/x80-/xbf]|[/xf1-/xf7][/x80-/xbf][/x80-/xbf][/x80-/xbf]/", $fStr, $ar);
            if(func_num_args() >= 3) {
                if (count($ar[0])>$fLen) {
                    return join("",array_slice($ar[0],$fStart,$fLen))."...";
                }
                return join("",array_slice($ar[0],$fStart,$fLen));
            } else {
                return join("",array_slice($ar[0],$fStart));
            }
            break;
        default:
            $fStart = $fStart*2;
            $fLen   = $fLen*2;
            $strlen = strlen($fStr);
            for ( $i = 0; $i < $strlen; $i++ ) {
                if ( $i >= $fStart && $i < ( $fStart+$fLen ) ) {
                    if ( ord(substr($fStr, $i, 1)) > 129 ) $tmpstr .= substr($fStr, $i, 2);
                    else $tmpstr .= substr($fStr, $i, 1);
                }
                if ( ord(substr($fStr, $i, 1)) > 129 ) $i++;
            }
            if ( strlen($tmpstr) < $strlen ) $tmpstr .= "...";
            Return $tmpstr;
    }
}
?>

php 中文字符串截取函数

下面这二款函数是二款双字节字符串截取函数,那就是针对中文字符串截取了,好了第一款汉字中文截取函数是越级简洁了,后一款复杂但考虑更多一些。 //php教程 中文字符串截取函数 /* 下面这二款...
  • u013406691
  • u013406691
  • 2014年01月08日 15:39
  • 464

实现中文字符串截取无乱码的方法

方法一:使用php内置函数mb_substr(); mb_substr( $str, $start, $length, $encoding ) $str,需要截断的字符串 $start,截断...
  • qq_27808305
  • qq_27808305
  • 2017年08月30日 21:12
  • 261

php实现中文字串截取无乱码的三种方法(详)

substr的用法(看手册): 定义和用法 substr() 函数返回字符串的一部分。 注释:如果 start 参数是负数且 length 小于或等于 start,则 l...
  • m0_37279699
  • m0_37279699
  • 2017年05月04日 22:34
  • 1011

PHP通用字符串截取函数

/** * 字符串截取通用函数 * @param string $str 要截取的字符串 * @param integer $start 截取开始位置 * @param i...
  • fationyyk
  • fationyyk
  • 2017年05月03日 11:19
  • 734

php函数substr、mb_substr、mb_strcut截取中文比较

一、函数说明     substr、mb_substr、mb_strcut这三个函数都用来截取字符串,所不同的是:substr是最简单的截取,无法适应中文;mb_substr是按字来切分字符串,而mb...
  • mlks_2008
  • mlks_2008
  • 2013年01月21日 09:45
  • 14062

多个PHP中文字符串截取函数

代码如下: function sysSubStr($string,$length,$append = false) {     if(strlen($string)     {  ...
  • u011714480
  • u011714480
  • 2013年11月13日 09:37
  • 579

php 中文字符串截取的函数

//实现一个字符串截取的函数,类似于substr,必须能够截取中文这种多字节编码。假设每个中文也是一个字符,普通的数字、符号、字母也是一个字符。(提示:GB编码的中文 字符高位范围是 0x8...
  • lifushan123
  • lifushan123
  • 2015年04月04日 23:38
  • 254

PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数

一、中文截取:mb_substr()  mb_substr( $str, $start, $length, $encoding )  $str,需要截断的字符串  $start,截断开始...
  • yongzhen150
  • yongzhen150
  • 2013年11月19日 09:28
  • 1926

PHP查找并截取字符串函数strchr()

定义和用法strchr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法strchr(string,sea...
  • yuzhengyang0720
  • yuzhengyang0720
  • 2010年10月26日 20:22
  • 1365

如何利用PHP来截取一段中文字符串而不出现乱码

[code:1:e818e36f81] /* 功能:截取全角和半角混合的字符串以避免乱码 参数: $str_cut 需要截断的字符串 $length  允许字符串显示的最大长度 */ function...
  • ligaofeng
  • ligaofeng
  • 2007年05月12日 21:17
  • 1631
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP中文字符串截取函数
举报原因:
原因补充:

(最多只允许输入30个字)