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 ftp文件上传函数(基础版)
Jun 03 PHP
使用swoole扩展php websocket示例
Feb 13 PHP
php判断页面是否是微信打开的示例(微信打开网页)
Apr 25 PHP
PHP多个文件上传到服务器实例
Oct 29 PHP
php生成图片缩略图的方法
Apr 07 PHP
php异常处理方法实例汇总
Jun 24 PHP
PHP自定义错误用法示例
Sep 28 PHP
利用php_imagick实现复古效果的方法
Oct 18 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
Mar 29 PHP
php微信开发之关键词回复功能
Jun 13 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 15 PHP
php引用传递
Apr 01 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常用函数小技巧
2008/09/11 PHP
PHP数组及条件,循环语句学习
2012/11/11 PHP
php简单的上传类分享
2016/05/15 PHP
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
2009/04/01 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
jquery动态添加删除div 具体实现
2013/07/20 Javascript
js数组的基本用法及数组根据下标(数值或字符)移除元素
2013/10/20 Javascript
jQuery中toggle()函数的使用实例
2015/04/17 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
Web Uploader文件上传插件使用详解
2016/05/10 Javascript
JavaScript中Array的实用操作技巧分享
2016/09/11 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
解决vue中post方式提交数据后台无法接收的问题
2018/08/11 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
2018/10/07 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
JavaScript惰性求值的一种实现方法示例
2019/01/11 Javascript
[01:43]倾听DOTA2英雄之声 魅惑魔女国服配音鉴赏
2013/06/06 DOTA
python+VTK环境搭建及第一个简单程序代码
2017/12/13 Python
20个常用Python运维库和模块
2018/02/12 Python
Windows系统下PhantomJS的安装和基本用法
2018/10/21 Python
对python 合并 累加两个dict的实例详解
2019/01/21 Python
Python超越函数积分运算以及绘图实现代码
2019/11/20 Python
10行Python代码实现Web自动化管控的示例代码
2020/08/14 Python
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
新西兰优惠网站:Treat Me
2019/07/04 全球购物
一道Delphi面试题
2016/10/28 面试题
学生会竞选自荐信
2013/10/12 职场文书
师范教师毕业鉴定
2014/01/13 职场文书
奥巴马上海演讲稿
2014/09/10 职场文书
人生遥控器观后感
2015/06/11 职场文书
CSS实现单选折叠菜单功能
2021/11/01 HTML / CSS
Python实现位图分割的效果
2021/11/20 Python
java版 联机五子棋游戏
2022/05/04 Java/Android
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python