使用php实现截取指定长度


Posted in PHP onAugust 06, 2013

PHP语言: 根据中文裁减字符串

function cutstr($string,$length, $dot = ' ...') {
  if (strlen($string) <= $length) {
      return$string;
  }
  $pre = chr(1);
  $end = chr(1);
  $string = str_replace(array('&','"', '<', '>'),array($pre . '&'. $end, $pre . '"' . $end, $pre . '<' .$end, $pre . '>' . $end), $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];
     }
  }
  $strcut = str_replace(array($pre . '&' .$end, $pre . '"' . $end, $pre . '<' . $end, $pre . '>' .$end), array('&', '"','<', '>'), $strcut);
  $pos = strrpos($strcut, chr(1));
  if ($pos !== false) {
      $strcut =substr($strcut, 0, $pos);
  }
  return $strcut . $dot;
}
PHP 相关文章推荐
php代码运行时间查看类代码分享
Aug 06 PHP
php中一个完整表单处理实现代码
Nov 10 PHP
PHP 图片水印类代码
Aug 27 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
Aug 15 PHP
php使用curl发送json格式数据实例
Dec 17 PHP
ThinkPHP缓存方法S()概述
Jun 13 PHP
列举PHP的Yii 2框架的开发优势
Jul 03 PHP
win平台安装配置Nginx+php+mysql 环境
Jan 12 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
Jul 18 PHP
php7函数,声明,返回值等新特性介绍
May 25 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
Sep 04 PHP
php操作redis常见方法示例【key与value操作】
Apr 14 PHP
php 如何获取数组第一个值
Aug 06 #PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
Aug 06 #PHP
php实现统计邮件大小的方法
Aug 06 #PHP
php addslashes 利用递归实现使用反斜线引用字符串
Aug 05 #PHP
如何使用PHP批量去除文件UTF8 BOM信息
Aug 05 #PHP
深入解析PHP中逗号与点号的区别
Aug 05 #PHP
php 读取文件头判断文件类型的实现代码
Aug 05 #PHP
You might like
php获取当前网址url并替换参数或网址的方法
2010/06/06 PHP
php 启动报错如何解决
2014/01/17 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
PHPCMS2008广告模板SQL注入漏洞修复
2016/10/11 PHP
TNC vs RR BO3 第一场 2.14
2021/03/10 DOTA
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
window.open被浏览器拦截后的自定义提示效果代码
2007/11/19 Javascript
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
javascript 用原型继承来实现对象系统
2010/03/22 Javascript
用js模拟JQuery的show与hide动画函数代码
2010/09/20 Javascript
jQuery 设置 CSS 属性示例介绍
2014/01/16 Javascript
js 设置缓存及获取设置的缓存
2014/05/08 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
jQuery根据表单name获取值的方法
2016/05/24 Javascript
jquery取消事件冒泡的三种方法(推荐)
2016/05/28 Javascript
原生JS实现圣旨卷轴展开效果
2017/03/06 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
vue项目中引入vue-datepicker插件的详解
2019/05/14 Javascript
Vue.js原理分析之nextTick实现详解
2020/09/07 Javascript
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
Python的多维空数组赋值方法
2018/04/13 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
使用keras实现非线性回归(两种加激活函数的方式)
2020/07/05 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
新西兰杂志订阅:isubscribe
2019/08/26 全球购物
软件生产职位结构化面试主要考察要素及面试题库
2015/06/12 面试题
医学生临床实习自我评价
2014/03/07 职场文书
奥巴马胜选演讲稿
2014/05/15 职场文书
亲属关系公证书样本
2015/01/23 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
vue+springboot实现登录验证码
2021/05/27 Vue.js