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二分法在IP地址查询中的应用
Aug 12 PHP
php继承的一个应用
Sep 06 PHP
php获取文件夹路径内的图片以及分页显示示例
Mar 11 PHP
php猴子选大王问题解决方法
May 12 PHP
php结合ACCESS的跨库查询功能
Jun 12 PHP
PHP中余数、取余的妙用
Jun 29 PHP
PHP自定义函数实现数组比较功能示例
Oct 19 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
Oct 22 PHP
Yii支持多域名cors原理的实现
Dec 05 PHP
laravel dingo API返回自定义错误信息的实例
Sep 29 PHP
php慢查询日志和错误日志使用详解
Feb 27 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Mar 09 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
中英文字符串翻转函数
2008/12/09 PHP
解析数组非数字键名引号的必要性
2013/08/09 PHP
php多重接口的实现方法
2015/06/20 PHP
php cli模式下获取参数的方法
2017/05/05 PHP
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
vue.js学习之递归组件
2016/12/13 Javascript
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
vue与TypeScript集成配置最简教程(推荐)
2017/10/17 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
p5.js临摹动态图形的方法
2019/10/23 Javascript
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
python根据经纬度计算距离示例
2014/02/16 Python
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
Python 制作糗事百科爬虫实例
2016/09/22 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
python实现超市商品销售管理系统
2019/11/22 Python
HTML5 本地存储和内容按需加载的思路和方法
2011/04/07 HTML / CSS
北美三大旅游网站之一:Travelocity加拿大
2016/08/20 全球购物
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
Vision Direct比利时:在线订购隐形眼镜
2019/08/27 全球购物
某同学的自我鉴定范文
2013/12/26 职场文书
土木工程专业个人求职信
2013/12/30 职场文书
求职自荐信范文(优秀篇)
2015/03/27 职场文书
2015秋季小学开学寄语
2015/05/27 职场文书
安全生产学习心得体会
2016/01/18 职场文书
golang DNS服务器的简单实现操作
2021/04/30 Golang
如何有效防止sql注入的方法
2021/05/25 SQL Server
MySQL 时间类型的选择
2021/06/05 MySQL
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python
Python Django获取URL中的数据详解
2021/11/01 Python
解析python中的jsonpath 提取器
2022/01/18 Python