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来实现网络服务
Sep 15 PHP
php实现jQuery扩展函数
Oct 30 PHP
探讨Hessian在PHP中的使用分析
Jun 13 PHP
php配置php-fpm启动参数及配置详解
Nov 04 PHP
PHP动态编译出现Cannot find autoconf的解决方法
Nov 05 PHP
php中http与https跨域共享session的解决方法
Dec 20 PHP
推荐几个开源的微信开发项目
Dec 28 PHP
PHP 绘制网站登录首页图片验证码
Apr 12 PHP
Joomla使用Apache重写模式的方法
May 04 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 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
Laravel框架实现的rbac权限管理操作示例
2019/01/16 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
2020/06/05 PHP
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
2014/08/15 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
微信WeixinJSBridge API使用实例
2015/05/25 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
Vue中使用vee-validate表单验证的方法
2018/05/09 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
[02:36]DOTA2上海特锦赛 回忆电竞生涯的重要瞬间
2016/03/25 DOTA
Python Requests安装与简单运用
2016/04/07 Python
python并发编程之多进程、多线程、异步和协程详解
2016/10/28 Python
python TF-IDF算法实现文本关键词提取
2019/05/29 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
Python之Numpy的超实用基础详细教程
2019/10/23 Python
django在保存图像的同时压缩图像示例代码详解
2020/02/11 Python
Python如何安装第三方模块
2020/05/28 Python
python有几个版本
2020/06/17 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
一篇文章教你用python画动态爱心表白
2020/11/22 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
纯CSS3实现图片无间断轮播效果
2016/08/25 HTML / CSS
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
营销与策划专业毕业生求职信
2013/11/01 职场文书
医院门卫岗位职责
2013/12/30 职场文书
运动会入场词200字
2014/02/15 职场文书
我们的节日清明节活动方案
2014/03/05 职场文书
建筑工地质量标语
2014/06/12 职场文书
客房部经理岗位职责
2015/02/02 职场文书
档案管理员岗位职责
2015/02/12 职场文书
自荐信范文
2019/05/20 职场文书
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python