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
一个可以删除字符串中HTML标记的PHP函数
Oct 09 PHP
PHP 冒泡排序算法的实现代码
Aug 08 PHP
php学习笔记 面向对象的构造与析构方法
Jun 13 PHP
PHP中获取文件扩展名的N种方法小结
Feb 27 PHP
php连接mssql数据库的几种方法
Feb 21 PHP
PHP中::、-&amp;gt;、self、$this几种操作符的区别介绍
Apr 24 PHP
php中file_exists函数使用详解
May 08 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
Nov 30 PHP
如何直接访问php实例对象中的private属性详解
Oct 12 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 PHP
Laravel相关的一些故障解决
Aug 19 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 adodb连接不同数据库
2009/03/19 PHP
浅析PHP Socket技术
2013/08/02 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
详解Laravel视图间共享数据与视图Composer
2016/08/04 PHP
详谈PHP中的密码安全性Password Hashing
2017/02/04 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
Javascript注入技巧
2007/06/22 Javascript
用JavaScript实现UrlEncode和UrlDecode的脚本代码
2008/07/23 Javascript
日期 时间js控件
2009/05/07 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
深入理解Angular2 模板语法
2016/08/07 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
2016/08/31 Javascript
js判断出两个字符串最大子串的函数实现方法
2016/11/01 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
详解vue父子组件关于模态框状态的绑定方案
2019/06/05 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
2020/04/07 Javascript
[01:58]DOTA2上海特级锦标赛现场采访:RTZ这个ID到底好不好
2016/03/25 DOTA
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中DJANGO简单测试实例
2015/05/11 Python
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
2017/05/24 Python
简单了解Python中的几种函数
2017/11/03 Python
python简单操作excle的方法
2018/09/12 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
python保留小数位的三种实现方法
2020/01/07 Python
python和opencv构建运动检测器的实现
2021/03/03 Python
为中国消费者甄选天下优品:网易严选
2016/08/11 全球购物
《自选商场》教学反思
2014/02/14 职场文书
疾病捐款倡议书
2014/05/13 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书
教师求职自荐信
2015/03/26 职场文书
董事会决议范本
2015/07/01 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
java版 联机五子棋游戏
2022/05/04 Java/Android