php摘要生成函数(无乱码)


Posted in PHP onFebruary 04, 2012

在使用的时候,得先把要生成摘要的内容strip_tags()一下,当然,你也可以把strip_tags()直接添加到函数中,我没有搞,自己添加吧。下面是函数:

function cutstr($string, $length,$charset,$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($s, chr(1)); 
if($pos !== false) { 
$strcut = substr($s,0,$pos); 
} 
return $strcut.$dot; 
}
PHP 相关文章推荐
无数据库的详细域名查询程序PHP版(4)
Oct 09 PHP
PHP IPV6正则表达式验证代码
Feb 16 PHP
php随机显示图片的简单示例
Feb 15 PHP
php实现cookie加密的方法
Mar 10 PHP
PHP面试题之文件目录操作
Oct 15 PHP
php实现简单的上传进度条
Nov 17 PHP
PHP使用反射机制实现查找类和方法的所在位置
Apr 22 PHP
centos+php+coreseek+sphinx+mysql之一coreseek安装篇
Oct 25 PHP
PHP构造二叉树算法示例
Jun 21 PHP
PHP实现权限管理功能示例
Sep 22 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
Oct 12 PHP
PHP钩子实现方法解析
May 21 PHP
写出高质量的PHP程序
Feb 04 #PHP
组合算法的PHP解答方法
Feb 04 #PHP
php处理斐波那契数列非递归方法
Feb 04 #PHP
PHP逐行输出(ob_flush与flush的组合)
Feb 04 #PHP
非常好用的两个PHP函数 serialize()和unserialize()
Feb 04 #PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
Feb 04 #PHP
PHP的博客ping服务代码
Feb 04 #PHP
You might like
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
php截取字符串并保留完整xml标签的函数代码
2013/02/06 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
2013/11/03 Javascript
js控制浏览器全屏示例代码
2014/02/20 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
2015/09/17 Javascript
js过滤HTML标签完整实例
2015/11/26 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
js实现将json数组显示前台table中
2017/01/10 Javascript
angular ng-repeat数组中的数组实例
2017/02/18 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
微信小程序自定义弹出层效果
2020/05/26 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
Python3实现的字典遍历操作详解
2018/04/18 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
学会python自动收发邮件 代替你问候女友
2020/05/20 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
Python命令行参数argv和argparse该如何使用
2021/02/08 Python
施华洛世奇加拿大官网:SWAROVSKI加拿大
2018/06/03 全球购物
NOTINO英国:在线购买美容和香水
2020/02/25 全球购物
链表面试题-一个链表的结点结构
2015/05/04 面试题
农业大学毕业生的个人自我评价
2013/10/11 职场文书
咨询公司各岗位职责
2013/12/02 职场文书
销售人员获奖感言
2014/02/05 职场文书
《我的伯父鲁迅先生》教学反思
2014/02/12 职场文书
思想纪律作风整顿剖析材料
2014/10/11 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
浅谈Redis中的RDB快照
2021/06/29 Redis