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


Posted in PHP onMay 31, 2018

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实现的获取网页中的图片并保存到本地的代码
Jan 05 PHP
php 对输入信息的进行安全过滤的函数代码
Jun 29 PHP
关于PHPDocument 代码注释规范的总结
Jun 25 PHP
php使用pack处理二进制文件的方法
Jul 03 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
Jul 15 PHP
分享php邮件管理器源码
Jan 06 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
Mar 19 PHP
关于PHP文件的自动运行方法分析
May 13 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
PHP+redis实现微博的拉模型案例详解
Jul 10 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
Oct 09 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
Oct 28 PHP
PHP封装curl的调用接口及常用函数详解
May 31 #PHP
PHP通过curl获取接口URL的数据方法
May 31 #PHP
php获得刚插入数据的id 的几种方法总结
May 31 #PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
May 31 #PHP
PHP实现可精确验证身份证号码的工具类示例
May 31 #PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
May 31 #PHP
php curl获取到json对象并转成数组array的方法
May 31 #PHP
You might like
PHP生成唯一的促销/优惠/折扣码(附源码)
2012/12/28 PHP
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
原生php实现excel文件读写的方法分析
2018/04/25 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
JQuery EasyUI 对话框的使用方法
2010/10/24 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
JavaScript中SetInterval与setTimeout的用法详解
2015/11/10 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
详解Node中导入模块require和import的区别
2017/08/11 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
Vue实现购物车基本功能
2020/11/08 Javascript
Python 返回汉字的汉语拼音
2009/02/27 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
2019/11/16 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
基于python实现音乐播放器代码实例
2020/07/01 Python
Python操控mysql批量插入数据的实现方法
2020/10/27 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
学校欢迎标语
2014/06/18 职场文书
演讲比赛的活动方案
2014/08/28 职场文书
离职报告范文
2014/11/04 职场文书
学校党支部承诺书
2015/04/30 职场文书
爱心捐助活动总结
2015/05/09 职场文书
行政答辩状范文
2015/05/21 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
人力资源部工作计划
2019/05/14 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis
关于maven依赖 ${xxx.version}报错问题
2022/01/18 Java/Android
python热力图实现的完整实例
2022/06/25 Python