PHP 字符截取 解决中文的截取问题,不用mb系列


Posted in PHP onSeptember 29, 2009
function Cut_string($string, $start ,$sublen, $extstring='...', $code = 'UTF-8') {//Cut_string开始 
if($code == 'UTF-8') 
{ 
$pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/"; 
preg_match_all($pa, $string, $t_string); 
if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen)).$extstring; 
return join('', array_slice($t_string[0], $start, $sublen)); 
} 
else 
{ 
$start = $start*2; 
$sublen = $sublen*2; 
$strlen = strlen($string); 
$tmpstr = ''; 
for($i=0; $i<$strlen; $i++) 
{ 
if($i>=$start && $i<($start+$sublen)) 
{ 
if(ord(substr($string, $i, 1))>129) 
{ 
$tmpstr.= substr($string, $i, 2); 
} 
else 
{ 
$tmpstr.= substr($string, $i, 1); 
} 
} 
if(ord(substr($string, $i, 1))>129) $i++; 
} 
if(strlen($tmpstr)<$strlen ) $tmpstr.= $extstring; 
return $tmpstr; 
} 
} //Cut_string结束
PHP 相关文章推荐
PHP+MYSQL的文章管理系统(一)
Oct 09 PHP
在PHP3中实现SESSION的功能(三)
Oct 09 PHP
php 无限级缓存的类的扩展
Mar 16 PHP
自己在做项目过程中学到的PHP知识收集
Aug 20 PHP
记录PHP错误日志 display_errors与log_errors的区别
Oct 09 PHP
php include和require的区别深入解析
Jun 17 PHP
php判断当前用户已在别处登录的方法
Jan 06 PHP
php中strtotime函数性能分析
Nov 20 PHP
php file_get_contents取文件中数组元素的方法
Apr 01 PHP
Laravel5.1框架注册中间件的三种场景详解
Jul 09 PHP
php更新cookie内容的详细方法
Sep 30 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
Aug 24 PHP
php 生成饼图 三维饼图
Sep 28 #PHP
php 不同编码下的字符串长度区分
Sep 26 #PHP
php 应用程序安全防范技术研究
Sep 25 #PHP
从Web查询数据库之PHP与MySQL篇
Sep 25 #PHP
php 服务器调试 Zend Debugger 的安装教程
Sep 25 #PHP
php 代码优化的42条建议 推荐
Sep 25 #PHP
PHP下通过系统信号量加锁方式获取递增序列ID
Sep 25 #PHP
You might like
第1次亲密接触PHP5(1)
2006/10/09 PHP
兼容firefox,chrome的网页灰度效果
2011/08/08 PHP
PHP新手用的Insert和Update语句构造类
2012/03/31 PHP
PHP小教程之实现双向链表
2014/06/12 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
Joomla开启SEF的方法
2016/05/04 PHP
PHP多进程编程总结(推荐)
2016/07/18 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
PHP内置函数生成随机数实例
2019/01/18 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
多种方式实现JS调用后台方法进行数据交互
2013/08/20 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
2014/09/10 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
JavaScript中的类(Class)详细介绍
2014/12/30 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
2015/03/18 Javascript
pace.js页面加载进度条插件
2015/09/29 Javascript
基于jQuery实现响应式圆形图片轮播特效
2015/11/25 Javascript
JS组件系列之Bootstrap Icon图标选择组件
2016/01/28 Javascript
学习Javascript面向对象编程之封装
2016/02/23 Javascript
基于JS实现的笛卡尔乘积之商品发布
2016/05/13 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
2017/09/12 Javascript
js中的 || 与 &amp;&amp; 运算符详解
2018/05/24 Javascript
vue 本地环境跨域请求proxyTable的方法
2018/09/19 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
2020/08/06 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
Pytorch根据layers的name冻结训练方式
2020/01/06 Python
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
软件测试工程师面试问题精选
2016/10/28 面试题
酒店总经理助理岗位职责
2014/02/01 职场文书
2014年图书馆工作总结
2014/11/25 职场文书
公司表扬稿范文
2015/05/05 职场文书
亮剑观后感300字
2015/06/05 职场文书
学校远程教育工作总结
2015/08/11 职场文书