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的函数

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

phputf-8和GB2312相互转换

没别的就是一段代码 $qiphon= iconv("utf-8","gb2312//IGNORE",$qiphon); utf-8转成gb2312就是这个格式了,后边的ignore是很必要 的,同...
  • qiphon3650
  • qiphon3650
  • 2017-09-14 09:31:57
  • 473

PHP iconv 解决utf-8和gb2312编码转换问题

就一个很简单的函数iconv();但是就是这个函数在网上找了很多例子,都无法成功转换,这是为什么呢? 终于皇天不负有心人,答案还是让我找到了。  网上的都是这样用的,代码如下:...
  • qq_15796423
  • qq_15796423
  • 2016-07-07 16:44:45
  • 2749

PHP mb_convert_encoding()函数

mb_convert_encoding 函数 为php内部多字节字符串编码转换函数,可以在有需要的场合进行编码转换,如:解决 在GB2312编码环境下使用Ajax产生的中文 字符乱码 问题。支持几乎所...
  • tashanhongye
  • tashanhongye
  • 2015-12-17 21:21:39
  • 4122

GB2312和 UTF8的互相转换函数

GB2312和 UTF8的互相转换函数
  • tangaowen
  • tangaowen
  • 2011-01-22 20:01:00
  • 4209

gb2312与utf8互转类_php

  • 2012年11月14日 15:52
  • 181KB
  • 下载

php中GB2312转UTF8

(转)http://jyqx.spaces.live.com/blog/cns!F9F71C7D6CB19944!203.entry按照性能从高到低依次是iconv,mbstring和自制字库,下面的...
  • xssh913913
  • xssh913913
  • 2007-10-09 08:49:00
  • 8932

c++ gb2312 utf8 转换函数

这里两个函数实现GB2313与UTF8格式的互转,主要用于VC++在获取网页内容时解决乱码问题,因为VC++默认字符集是GB2312的,一般中文网站可能返回的是UTF-8编码,所以可以用U2G函数进行...
  • u014436243
  • u014436243
  • 2017-08-18 20:39:00
  • 333

[转] 用php实现gb2312和unicode(UTF-8)间的编码转换

gb2312 和 unicode (UTF-8)间的编码转换下面的例子是将 gb2312 转换为 "&#20840;"这种形式下面的例子是将 gb2312 转换为 "&#20840;"这种形式php4...
  • heiyeshuwu
  • heiyeshuwu
  • 2005-06-23 13:30:00
  • 4131

PHP utf-8和gb2312编码转换乱码的问题

经过一时间的 php + mssql,感觉 mssql 对编码的支持不是很好(其实还是自己没有把握好啦),但是又还没有来得急换数据库,只能将就点,今天又在提交数据时出现了错误。由于提交的 ntex...
  • yjfnypm
  • yjfnypm
  • 2011-05-14 14:51:00
  • 1383
收藏助手
不良信息举报
您举报文章:php截字函数(支持UTF8和GB2312)
举报原因:
原因补充:

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