zoukankan      html  css  js  c++  java
  • PHP获取中英文混合字符串的字数

    function ccStrLen($str) #计算中英文混合字符串的长度
    {
    $ccLen=0;
    $ascLen=strlen($str);
    $ind=0;
    $hasCC=ereg("[xA1-xFE]",$str); #判断是否有汉字
    $hasAsc=ereg("[x01-xA0]",$str); #判断是否有ASCII字符
    if($hasCC && !$hasAsc) #只有汉字的情况
    return strlen($str)/2;
    if(!$hasCC && $hasAsc) #只有Ascii字符的情况
    return strlen($str);
    for($ind=0;$ind<$ascLen;$ind++)
    {
    if(ord(substr($str,$ind,1))>0xa0)
    {
    $ccLen++;
    $ind++;
    }
    else
    {
    $ccLen++;
    }
    }
    return $ccLen;
    }
    function ccStrLeft($str,$len) #从左边截取中英文混合字符串
    {
    $ascLen=strlen($str); if($ascLen<=$len) return $str;
    $hasCC=ereg("[xA1-xFE]",$str); #同上
    $hasAsc=ereg("[x01-xA0]",$str);
    if(!$hasCC) return substr($str,0,$len);
    if(!$hasAsc)
    if($len & 0x01) #如果长度是奇数
    return substr($str,0,$len+$len-2);
    else
    return substr($str,0,$len+$len);
    $cind=0;$flag=0;
    while($cind<$ascLen)
    {
    if(ord(substr($str,$cind,1))<0xA1) $flag++;
    $cind++;
    }
    if($flag & 0x01)
    return substr($str,0,$len);
    else
    return substr($str,0,$len-1);
    }

  • 相关阅读:
    模拟两位选手进行n羽毛球比赛(15分赛制)并计算模拟胜率
    Pyton实例
    Python图片处理
    jieba库的使用和好玩的词云
    Python汉诺塔问题
    多线程同时操作一个epoll_fd
    Linux tr命令
    iptables 深入分析
    Linux xtables
    Linux IPC 共享内存
  • 原文地址:https://www.cnblogs.com/keringing/p/9160874.html
Copyright © 2011-2022 走看看