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的ob_start();控制您的浏览器cache!
Nov 25 PHP
PHP的异常处理类Exception的使用及说明
Jun 13 PHP
memcache命令启动参数中文解释
Jan 13 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
Jun 19 PHP
THINKPHP内容分页代码分享
Jan 14 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
Mar 18 PHP
php实现有趣的人品测试程序实例
Jun 08 PHP
thinkphp多层MVC用法分析
Dec 30 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
Jan 27 PHP
Symfony生成二维码的方法
Feb 04 PHP
PHP截取IE浏览器并缩小原图的方法
Mar 04 PHP
PHP构造二叉树算法示例
Jun 21 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相当简单的分页类
2008/10/02 PHP
PHP编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
2014/06/30 PHP
PHP自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
php简单截取字符串代码示例
2016/10/19 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
js判断浏览器的比较全的代码
2007/02/13 Javascript
学习并汇集javascript匿名函数
2010/11/25 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
checkbox使用示例
2013/08/23 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
JavaScript通过this变量快速找出用户选中radio按钮的方法
2015/03/23 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
2016/02/22 Javascript
jquery css实现邮箱自动补全
2016/11/14 Javascript
JavaScript框架Angular和React深度对比
2017/11/20 Javascript
Vue使用枚举类型实现HTML下拉框步骤详解
2018/02/05 Javascript
Vue.js 十五分钟入门图文教程
2018/09/12 Javascript
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
Javascript 对象(object)合并操作实例分析
2019/07/30 Javascript
Python科学计算环境推荐——Anaconda
2014/06/30 Python
使用Python的turtle模块画国旗
2019/09/24 Python
Python Dataframe常见索引方式详解
2020/05/27 Python
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
门卫工作岗位职责
2013/12/17 职场文书
会计与审计专业自荐信范文
2014/03/15 职场文书
服务员岗位职责范本
2015/04/09 职场文书
施工安全保证书
2015/05/09 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript
Java实现简易的分词器功能
2021/06/15 Java/Android