php截字函数(支持UTF8和GB2312)

转载 2007年10月11日 10:19:00

Function msubstr ($fStr, $fLen, $option = false,$fCode = "UTF-8") {
    $fStart = 0;
 switch (strtoupper($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() >= 2) {  
                if (count($ar[0])>$fLen) {
                    return join("",array_slice($ar[0],$fStart,$fLen)).($option==true?"...":"");
                }
                return join("",array_slice($ar[0],$fStart,$fLen));
            } else {  
                return join("",array_slice($ar[0],$fStart,$fLen));
            }
            break;
        default: //GBK or GB2312
            $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 .= ($option==true?"...":"");
            return $tmpstr;
    }
}

中文字符乱码:UTF8、GB2312

最近遇到两个中文字符乱码的问题: 1、使用sourceinsight 查看代码时,中文字符乱码 2、使用xssh远程登录Ubuntu系统时,中文目录乱码 首先说下字符集: 最常见的英文...
  • cmsbupt
  • cmsbupt
  • 2016年07月06日 15:45
  • 1566

GB2312转UTF8编码表

static T_GB2312ToUTF T_GB2312ToUTFArray[]= { {0xD2BB,0x4E00,0xE4,0xB8,0x80}, //一 {0xB6A1,0x4...
  • huangjiancald
  • huangjiancald
  • 2015年10月29日 22:45
  • 785

GB2312与utf16、utf8的汉字对照表

GB2312标准共收录汉字6763个,其中一级汉字3755个,二级汉字3008个。 本文将GB2312中所有的汉字,在GB2312、utf16及utf8中的编码值都列了出来,方便进行对照查看。...
  • lintax
  • lintax
  • 2016年07月16日 13:16
  • 4189

(c语言)gb2312和utf8转换

(c语言)unicode和utf8转换 unicode和utf8转换规则 unicode与gb2312有着转换表 所以,只需要unicode和utf8之间进行转换即可 ...
  • I_study_ing
  • I_study_ing
  • 2017年03月14日 23:42
  • 1161

PHP类UTF8编码内的繁简转换-繁体-简体

均只支持 UTF8 文本,所以如果获得的来源是 $_GET 的话, 就有必要转换一下编码了。用到的函数是:...
  • myweishanli
  • myweishanli
  • 2014年04月09日 00:13
  • 1396

Javascript 实现gb2312和utf8编码的互换

转载地址 function getCodeStr(){  return codestr; }   function gb2utf(gbStr){  var codeStr = getC...
  • andrew57
  • andrew57
  • 2014年12月08日 11:53
  • 9807

做网站用UTF-8还是GB2312?

经常我们打开外国网站的时候出现乱码,又或者打开很多非英语的外国网站的时候,显示的都是口口口口口的字符,   WordPress程序是用的UTF-8,很多cms用的是GB2312。   ● ...
  • Inuyasha1121
  • Inuyasha1121
  • 2015年02月26日 15:29
  • 747

utf8转为gb2312的函数

一、利用iconv函数族进行编码转换 在LINUX上进行编码转换时,既可以利用iconv函数族编程实现,也可以利用iconv命令来实现,只不过后者是针对文件的,即将指定文件从一种编码转换为另一种编码。...
  • qianguozheng
  • qianguozheng
  • 2015年06月09日 17:14
  • 2533

汉字编码对照表(gb2312/unicode/utf8)

一、汉字编码的种类     汉字编码中现在主要用到的有三类,包括GBK,GB2312和Big5。     1、GB2312又称国标码,由国家标准总局发布,1981年5月1日实施,通行于大陆...
  • xcysuccess3
  • xcysuccess3
  • 2013年06月21日 14:15
  • 5866

多线程批量转换文件编码, 从GBK, GB2312编码转换到UTF-8编码(Python)

# description: 1. 批量转换文件编码,从GBK GB2312编码转换到UTF-8编码 # 2. 支持指定目录下所有的文件的转换,包括子目录中的文件 # ...
  • vieri_ch
  • vieri_ch
  • 2015年04月02日 14:28
  • 4176
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php截字函数(支持UTF8和GB2312)
举报原因:
原因补充:

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