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 相关文章推荐
搜索和替换文件或目录的一个好类--很实用
Oct 09 PHP
PHP读取目录下所有文件的代码
Jan 07 PHP
php 生成静态页面的办法与实现代码详细版
Feb 15 PHP
php笔记之:php数组相关函数的使用
Apr 26 PHP
php连接Access数据库错误及解决方法
Jun 20 PHP
CodeIgniter钩子用法实例详解
Jan 20 PHP
thinkphp3.x中display方法及show方法的用法实例
May 19 PHP
深入理解PHP JSON数组与对象
Jul 19 PHP
PHP中new static()与new self()的比较
Aug 19 PHP
php封装的page分页类完整实例
Oct 18 PHP
php实现将二维关联数组转换成字符串的方法详解
Jul 31 PHP
PHP读取word文档的方法分析【基于COM组件】
Aug 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中的字符串函数
2006/11/24 PHP
几个php应用技巧
2008/03/27 PHP
PHP XML error parsing SOAP payload on line 1
2010/06/17 PHP
基于php-fpm的配置详解
2013/06/03 PHP
php设置session值和cookies的学习示例
2014/03/21 PHP
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
jquery选择器使用详解
2014/04/08 Javascript
实例讲解JQuery中this和$(this)区别
2014/12/08 Javascript
js检测iframe是否加载完成的方法
2015/11/26 Javascript
Bootstrap项目实战之子栏目资讯内容
2016/04/25 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
vue 中动态绑定class 和 style的方法代码详解
2018/06/01 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
2019/07/19 Javascript
JS中准确判断变量类型的方法
2020/06/01 Javascript
vue内置组件keep-alive事件动态缓存实例
2020/10/30 Javascript
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
解读! Python在人工智能中的作用
2017/11/14 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
python格式化输出保留2位小数的实现方法
2019/07/02 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
Boutique 1美国:阿联酋奢侈时尚零售商
2017/10/16 全球购物
澳大利亚在线家具、灯饰和家居装饰店:LivingStyles
2018/11/20 全球购物
公司授权委托书范本
2014/04/03 职场文书
实习推荐信
2014/05/10 职场文书
美化环境标语
2014/06/20 职场文书
搞笑车尾标语
2014/06/23 职场文书
为Java项目添加Redis缓存的方法
2021/05/18 Redis
Mysql查询时间区间日期列表,不会由于数据表数据影响
2022/04/19 MySQL