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 相关文章推荐
VFP与其他应用程序的集成
Oct 09 PHP
PHP开发入门教程之面向对象
Dec 05 PHP
PHP5中新增stdClass 内部保留类
Jun 13 PHP
php自动加载机制的深入分析
Jun 08 PHP
php5.5新数组函数array_column使用
Jul 08 PHP
php多文件上传下载示例分享
Feb 20 PHP
PHP自带函数给数字或字符串自动补齐位数
Jul 29 PHP
PHP ajax 异步执行不等待执行结果的处理方法
May 27 PHP
一个PHP实现的轻量级简单爬虫
Jul 08 PHP
学习PHP session的传递方式
Jun 15 PHP
php 字符串中是否包含指定字符串的多种方法
Apr 12 PHP
PHP示例演示发送邮件给某个邮箱
Apr 03 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
Protoss兵种对照表
2020/03/14 星际争霸
php中支持多种编码的中文字符串截取函数!
2007/03/20 PHP
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
php实现文件管理与基础功能操作
2017/03/21 PHP
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
js循环改变div颜色具体方法
2013/06/25 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
使用js画图之画切线
2015/01/12 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
JS开发中基本数据类型具体有哪几种
2017/10/19 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
2018/08/24 Javascript
Element Carousel 走马灯的具体实现
2020/07/26 Javascript
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python制作数据导入导出工具
2015/07/31 Python
Python抓取框架 Scrapy的架构
2016/08/12 Python
python 中如何获取列表的索引
2019/07/02 Python
python绘制直方图和密度图的实例
2019/07/08 Python
Django中URL的参数传递的实现
2019/08/04 Python
python装饰器相当于函数的调用方式
2019/12/27 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
夜大毕业自我鉴定
2013/10/11 职场文书
国际政治个人自荐信范文
2013/11/26 职场文书
先进教师个人事迹材料
2014/12/15 职场文书
介绍信如何写
2015/01/31 职场文书
工程进度款催款函
2015/06/24 职场文书
高中升旗仪式主持词
2015/07/03 职场文书
Redis的字符串是如何实现的
2021/10/24 Redis
python使用BeautifulSoup 解析HTML
2022/04/24 Python