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操作xml代码
Jun 17 PHP
php 归并排序 数组交集
May 10 PHP
php 定义404页面的实现代码
Nov 19 PHP
php目录操作实例代码
Feb 21 PHP
PHP中获取时间的下一周下个月的方法
Mar 18 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
Apr 25 PHP
PHP中读取文件的几个方法总结(推荐)
Jun 03 PHP
php正则提取html图片(img)src地址与任意属性的方法
Feb 08 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
Apr 10 PHP
PHP封装请求类实例分析【基于Yii框架】
Oct 17 PHP
php操作redis数据库常见方法实例总结
Feb 20 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动态生成JavaScript代码
2009/03/09 PHP
php 方便水印和缩略图的图形类
2009/05/21 PHP
php中3种方法删除字符串中间的空格
2014/03/10 PHP
PHP简单生成缩略图相册的方法
2015/07/29 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
Aster vs KG BO3 第二场2.18
2021/03/10 DOTA
javascript写的一个链表实现代码
2009/10/25 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
jquery向上向下取整适合分页查询
2014/09/06 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
2015/03/13 Javascript
jQuery中的each()详细介绍(推荐)
2016/05/25 Javascript
js中常用的Tab切换效果(推荐)
2016/08/30 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
2016/12/07 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
关于vue.js v-bind 的一些理解和思考
2017/06/06 Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
2017/08/15 jQuery
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
解决bootstrap模态框数据缓存的问题方法
2018/08/10 Javascript
electron中使用bootstrap的示例代码
2018/11/06 Javascript
详解wepy开发小程序踩过的坑(小结)
2019/05/22 Javascript
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
Python创建或生成列表的操作方法
2019/06/19 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
python访问hdfs的操作
2020/06/06 Python
基于tensorflow for循环 while循环案例
2020/06/30 Python
python实现计算图形面积
2021/02/22 Python
Chemist Warehouse中文网:澳洲连锁大药房
2021/02/05 全球购物
中专毕业生求职简历的自我评价
2013/10/21 职场文书
教师考核材料
2014/05/21 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
隐形的翅膀观后感
2015/06/10 职场文书
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android