• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    php 截取中英文混合字符串的方法

    php 截取中应为字符串,就不必再用substr或者mb_substr

    //截取想这样的字符串
    a李三

    利用ASCII

    /**
     * 
     * 中英混合的字符串截取
     * @param unknown_type $sourcestr
     * @param unknown_type $cutlength
     */
    function assoc_substr($sourcestr, $cutlength) {
       $returnstr = '';
       $i = 0;
       $n = 0;
       $str_length = strlen ( $sourcestr ); //字符串的字节数 
       while ( ($n  $cutlength) and ($i = $str_length) ) {
        $temp_str = substr ( $sourcestr, $i, 1 );
        $ascnum = Ord ( $temp_str ); //得到字符串中第$i位字符的ascii码 
        if ($ascnum >= 224) {//如果ASCII位高与224,
           $returnstr = $returnstr . substr ( $sourcestr, $i, 3 ); //根据UTF-8编码规范,将3个连续的字符计为单个字符  
           $i = $i + 3; //实际Byte计为3
           $n ++; //字串长度计1
        } elseif ($ascnum >= 192){ //如果ASCII位高与192,
           $returnstr = $returnstr . substr ( $sourcestr, $i, 2 ); //根据UTF-8编码规范,将2个连续的字符计为单个字符 
           $i = $i + 2; //实际Byte计为2
           $n ++; //字串长度计1
        } elseif ($ascnum >= 65  $ascnum = 90) {//如果是大写字母,
         $returnstr = $returnstr . substr ( $sourcestr, $i, 1 );
         $i = $i + 1; //实际的Byte数仍计1个
         $n ++; //但考虑整体美观,大写字母计成一个高位字符
        }elseif ($ascnum >= 97  $ascnum = 122) {
          $returnstr = $returnstr . substr ( $sourcestr, $i, 1 );
          $i = $i + 1; //实际的Byte数仍计1个
          $n ++; //但考虑整体美观,大写字母计成一个高位字符
        } else {//其他情况下,半角标点符号,
         $returnstr = $returnstr . substr ( $sourcestr, $i, 1 );
         $i = $i + 1; 
         $n = $n + 0.5; 
        }
       }
       return $returnstr;
    }

    总结

    以上所述是小编给大家介绍的php 截取中英文混合字符串的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    您可能感兴趣的文章:
    • PHP针对中英文混合字符串长度判断及截取方法示例
    • 详解PHP用substr函数截取字符串中的某部分
    • php中文字符串截取多种方法汇总
    • PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
    • PHP指定截取字符串中的中英文或数字字符的实例分享
    上一篇:PHP封装curl的调用接口及常用函数详解
    下一篇:ThinkPHP5 验证器的具体使用
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    php 截取中英文混合字符串的方法 php,截取,中英文,混合,字符串,