PHP中英混合字符串截取函数代码


Posted in PHP onJuly 17, 2011
function get_word($string, $length, $dot = '..',$charset='gbk') { 
if(strlen($string) <= $length) { 
return $string; 
} 
$string = str_replace(array(' ',' ', '&', '"', '<', '>'), array('','','&', '"', '<', '>'), $string); 
$strcut = ''; 
if(strtolower($charset) == 'utf-8') { 
$n = $tn = $noc = 0; 
while($n < strlen($string)) { 
$t = ord($string[$n]); 
if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) { 
$tn = 1; $n++; $noc++; 
} elseif(194 <= $t && $t <= 223) { 
$tn = 2; $n += 2; $noc += 2; 
} elseif(224 <= $t && $t < 239) { 
$tn = 3; $n += 3; $noc += 2; 
} elseif(240 <= $t && $t <= 247) { 
$tn = 4; $n += 4; $noc += 2; 
} elseif(248 <= $t && $t <= 251) { 
$tn = 5; $n += 5; $noc += 2; 
} elseif($t == 252 || $t == 253) { 
$tn = 6; $n += 6; $noc += 2; 
} else { 
$n++; 
} 
if($noc >= $length) { 
break; 
} 
} 
if($noc > $length) { 
$n -= $tn; 
} 
$strcut = substr($string, 0, $n); 
} else { 
for($i = 0; $i < $length; $i++) { 
$strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i]; 
} 
} 
return $strcut.$dot; 
} 
$str = "欢迎 visit 简明 nowamagic"; 
$str_result = get_word($str, 12); 
echo $str_result;

测试运行结果:
欢迎 visit..
PHP 相关文章推荐
php中的时间处理
Oct 09 PHP
PHP防注入安全代码
Apr 09 PHP
PHP学习 运算符与运算符优先级
Jun 15 PHP
让ThinkPHP支持大小写url地址访问的方法
Oct 31 PHP
Yii不依赖Model的表单生成器用法实例
Dec 04 PHP
PHP中的事务使用实例
May 26 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
Dec 22 PHP
PHP静态成员变量
Feb 14 PHP
php魔法函数与魔法常量使用介绍
Jul 23 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
PHP 布尔值的自增与自减的实现方法
May 03 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 PHP
PHP操作数组的一些函数整理介绍
Jul 17 #PHP
如何突破PHP程序员的技术瓶颈分析
Jul 17 #PHP
过滤掉PHP数组中的重复值的实现代码
Jul 17 #PHP
PHP二维数组的去重问题解析
Jul 17 #PHP
简单的PHP多图上传小程序代码
Jul 17 #PHP
一个PHP验证码类代码分享(已封装成类)
Jul 17 #PHP
PHP 验证码的实现代码
Jul 17 #PHP
You might like
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
2018/09/28 PHP
js prototype截取字符串函数
2010/04/01 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
jQuery中hover方法和toggle方法使用指南
2015/02/27 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
2019/04/20 Javascript
深入理解 TypeScript Reflect Metadata
2019/12/12 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
Python的Django应用程序解决AJAX跨域访问问题的方法
2016/05/31 Python
python连接数据库的方法
2017/10/19 Python
Python生成器以及应用实例解析
2018/02/08 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
python3.4控制用户输入与输出的方法
2018/10/17 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
2018/12/12 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
python装饰器相当于函数的调用方式
2019/12/27 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
Django接收照片储存文件的实例代码
2020/03/07 Python
CSS3的新特性介绍
2008/10/31 HTML / CSS
浅谈Html5多线程开发之WebWorkers
2018/05/02 HTML / CSS
Under Armour瑞典官方网站:美国高端运动科技品牌
2018/11/21 全球购物
成人毕业生自我鉴定
2013/10/18 职场文书
财务会计人员求职的自我评价
2014/01/13 职场文书
十佳中学生事迹材料
2014/06/02 职场文书
公司法定代表人授权委托书
2014/09/29 职场文书
2014年医生工作总结
2014/11/21 职场文书
检讨书大全
2015/01/27 职场文书
中国合伙人观后感
2015/06/02 职场文书
2016入党积极分子党课学习心得体会
2015/10/09 职场文书
pytorch实现加载保存查看checkpoint文件
2022/07/15 Python