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程序中的常见漏洞进行攻击(下)
Oct 09 PHP
php知道与问问的采集插件代码
Oct 12 PHP
PHP中常用的输出函数总结
Sep 22 PHP
php实现模拟登陆方正教务系统抓取课表
May 19 PHP
php简单smarty入门程序实例
Jun 11 PHP
PHP操作mysql数据库分表的方法
Jun 09 PHP
php版交通银行网银支付接口开发入门教程
Sep 26 PHP
php遍历替换目录下文件指定内容的方法
Nov 10 PHP
PHP实现动态添加XML中数据的方法
Mar 30 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
PHP7.3.10编译安装教程
Oct 08 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 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 MSSQL 存储过程的方法
2008/12/24 PHP
一个很不错的PHP翻页类
2009/06/01 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
js展开闭合效果演示代码
2013/07/24 Javascript
JavaScript新窗口与子窗口传值详解
2014/02/11 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
JavaScript实现仿网易通行证表单验证
2015/05/25 Javascript
JavaScript的jQuery库插件的简要开发指南
2015/08/12 Javascript
AngularJs学习第八篇 过滤器filter创建
2016/06/08 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
2016/06/28 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
[01:03:50]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第二场 2月7日
2021/03/11 DOTA
浅谈Django自定义模板标签template_tags的用处
2017/12/20 Python
python如何让类支持比较运算
2018/03/20 Python
Python Django 命名空间模式的实现
2019/08/09 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
使用Python画了一棵圣诞树的实例代码
2020/11/27 Python
python 合并多个excel中同名的sheet
2021/01/22 Python
Kipling凯浦林美国官网:世界著名时尚休闲包袋品牌
2016/08/24 全球购物
美国开幕式潮店:Opening Ceremony
2018/02/10 全球购物
应届生求职信范文
2014/06/30 职场文书
检讨书1000字
2014/10/11 职场文书
党员检讨书
2014/10/13 职场文书
乔迁之喜答谢词
2015/01/05 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
三八妇女节新闻稿
2015/07/17 职场文书
校运会宣传稿大全
2015/07/23 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
党员读书活动心得体会
2016/01/14 职场文书
导游词之新疆尼雅遗址
2019/10/16 职场文书