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
window+nginx+php环境配置 附配置搭配说明
Dec 29 PHP
PHP简洁函数(PHP简单明了函数语法)
Jun 10 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
Jul 01 PHP
php使用curl检测网页是否被百度收录的示例分享
Jan 31 PHP
thinkphp3.2.2前后台公用类架构问题分析
Nov 25 PHP
C# WinForm中实现快捷键自定义设置实例
Jan 23 PHP
支持中文、字母、数字的PHP验证码
May 04 PHP
php使用自定义函数实现汉字分割替换功能示例
Jan 30 PHP
理清PHP在Linxu下执行时的文件权限方法
Jun 07 PHP
laravel使用数据库测试注意事项
Apr 10 PHP
PHP 对象接口简单实现方法示例
Apr 13 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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
一个简单的PHP入门源程序
2006/10/09 PHP
Php 构造函数construct的前下划线是双的_
2009/12/08 PHP
一个PHP的ZIP压缩类分享
2014/05/04 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
2014/09/09 PHP
Symfony控制层深入详解
2016/03/17 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
详解PHP队列的实现
2019/03/14 PHP
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
jquery动态添加删除div 具体实现
2013/07/20 Javascript
JS实现的页面自定义滚动条效果
2015/10/26 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
VueJs 搭建Axios接口请求工具
2017/11/20 Javascript
深入浅析Vue.js中 computed和methods不同机制
2018/03/22 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
2018/06/01 Javascript
Javascript实现异步编程的过程
2018/06/18 Javascript
webpack4 入门最简单的例子介绍
2018/09/05 Javascript
Vue请求JSON Server服务器数据的实现方法
2018/11/02 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
详解如何使用node.js的开发框架express创建一个web应用
2018/12/20 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
Django重设Admin密码过程解析
2020/02/10 Python
CSS3 制作旋转的大风车(充满童年回忆)
2013/01/30 HTML / CSS
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
欧洲品牌瓷器餐具网上商店:Porzellantreff.de
2018/04/04 全球购物
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
美国在线面料商店:Fashion Fabrics Club
2020/01/31 全球购物
拓展培训心得体会
2014/01/04 职场文书
鉴定评语大全
2014/05/05 职场文书
师德演讲稿范文
2014/05/06 职场文书
工程售后服务方案
2014/06/08 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
python实现的web监控系统
2021/04/27 Python
Python如何解决secure_filename对中文不支持问题
2021/07/16 Python