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 相关文章推荐
第十五节--Zend引擎的发展
Nov 16 PHP
php学习 字符串课件
Jun 15 PHP
PHP 将图片按创建时间进行分类存储的实现代码
Jan 05 PHP
php获取服务器信息的实现代码
Feb 04 PHP
PHP设计模式之解释器模式的深入解析
Jun 13 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
Jun 19 PHP
ThinkPHP中自定义错误页面和提示页面实例
Nov 22 PHP
php提交post数组参数实例分析
Dec 17 PHP
分享50个提高PHP执行效率的技巧
Dec 26 PHP
PHP上传图片、删除图片简单实例
Nov 12 PHP
PHP基于DOMDocument解析和生成xml的方法分析
Jul 17 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
Dec 13 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使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
2018/01/27 PHP
Highslide.js是一款基于js实现的网页中图片展示插件
2020/03/30 Javascript
jQuery Clone Bug解决代码
2010/12/22 Javascript
javascript学习笔记(十三) js闭包介绍(转)
2012/06/20 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
JavaScript中this的使用详解
2013/11/08 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
同步文本框内容JS代码实现
2016/08/04 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
详解使用angular的HttpClient搭配rxjs
2017/09/01 Javascript
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
laravel-admin 与 vue 结合使用实例代码详解
2019/06/04 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
使用Typescript开发微信小程序的步骤详解
2021/01/12 Javascript
[00:37]2016完美“圣”典风云人物:rOtk宣传片
2016/12/09 DOTA
python里将list中元素依次向前移动一位
2014/09/12 Python
Python 中的 else详解
2016/04/23 Python
python语言使用技巧分享
2016/05/31 Python
Python网络编程 Python套接字编程
2017/09/13 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
python里 super类的工作原理详解
2019/06/19 Python
Python unittest工作原理和使用过程解析
2020/02/24 Python
python如何快速拼接字符串
2020/10/28 Python
英国翻新电子产品购物网站:Tech Trade
2017/12/25 全球购物
SHEIN香港:价格实惠的女性时尚服装
2018/08/14 全球购物
免税水晶:Duty Free Crystal
2019/05/13 全球购物
初二物理教学反思
2014/01/29 职场文书
大学毕业感言50字
2014/02/07 职场文书
2014优秀大学生简历自我评价
2014/09/15 职场文书
国际贸易本科毕业生求职信
2014/09/26 职场文书
党委干部批评与自我批评发言稿
2014/09/28 职场文书
python 使用pandas读取csv文件的方法
2022/12/24 Python