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-fpm的两种进程管理模式详解
Jun 03 PHP
php对二维数组按指定键值key排序示例代码
Nov 26 PHP
php实现的发送带附件邮件类实例
Sep 22 PHP
php定义参数数量可变的函数用法实例
Mar 16 PHP
php数组函数array_key_exists()小结
Dec 10 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
Feb 03 PHP
Yii2实现上下联动下拉框功能的方法
Aug 10 PHP
yii 2.0中表单小部件的使用方法示例
May 23 PHP
PHP PDO操作MySQL基础教程
Jun 05 PHP
Laravel利用gulp如何构建前端资源详解
Jun 03 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
Oct 30 PHP
PHP dirname功能及原理实例解析
Oct 28 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
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
function.inc.php超越php
2006/12/09 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
2016/04/21 PHP
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
AJAX架构之Dojo篇
2007/04/10 Javascript
jQuery 动态酷效果实现总结
2009/12/27 Javascript
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
在myeclipse中如何加入jquery代码提示功能
2014/06/03 Javascript
node.js中的http.request.end方法使用说明
2014/12/10 Javascript
微信WeixinJSBridge API使用实例
2015/05/25 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
2016/06/12 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
python3个性签名设计实现代码
2018/06/19 Python
Python爬虫框架Scrapy基本用法入门教程
2018/07/26 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
python如何编写win程序
2020/06/08 Python
Python描述数据结构学习之哈夫曼树篇
2020/09/07 Python
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
高考自主招生自荐信
2013/10/20 职场文书
学校食堂采购员岗位职责
2013/12/05 职场文书
在校学生职业规划范文
2014/01/08 职场文书
服装采购员岗位职责
2014/03/15 职场文书
雨中的树观后感
2015/06/03 职场文书
保险公司岗前培训工作总结
2015/10/24 职场文书
解决Golang中ResponseWriter的一个坑
2021/04/27 Golang
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python