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教程 预定义变量
Oct 23 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
Mar 21 PHP
php流量统计功能的实现代码
Sep 29 PHP
ci检测是ajax还是页面post提交数据的方法
Nov 10 PHP
php操作mongoDB实例分析
Dec 29 PHP
php 批量查询搜狗sogou代码分享
May 17 PHP
Composer设置忽略版本匹配的方法
Apr 27 PHP
php操作路径的经典方法(必看篇)
Oct 04 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
Oct 13 PHP
php实现文件管理与基础功能操作
Mar 21 PHP
PHP通过文件保存和更新信息的方法分析
Sep 12 PHP
php把文件设置为插件的技巧方法
Feb 03 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
php 高性能书写
2010/12/11 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
javascript引用对象的方法代码
2007/08/13 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
利用谷歌地图API获取点与点的距离的js代码
2012/10/11 Javascript
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
jQuery插件datepicker 日期连续选择
2015/06/12 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
2017/03/02 Javascript
vue devtools的安装与使用教程
2018/08/08 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
jQuery实现电梯导航模块
2020/12/22 jQuery
[02:41]DOTA2亚洲邀请赛小组赛第三日 赛事回顾
2015/02/01 DOTA
[01:13:18]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
Python 爬虫的工具列表大全
2016/01/31 Python
python字符类型的一些方法小结
2016/05/16 Python
Python输出带颜色的字符串实例
2017/10/10 Python
pygame实现非图片按钮效果
2019/10/29 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
pytorch  网络参数 weight bias 初始化详解
2020/06/24 Python
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
阳光体育:Sunny Sports(购买露营和远足设备)
2018/08/07 全球购物
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
美国最佳选择产品网站:Best Choice Products
2019/05/27 全球购物
高中生的学习总结自我鉴定
2013/10/26 职场文书
信息管理员岗位职责
2013/12/01 职场文书
舞蹈教育学专业自荐信
2014/06/15 职场文书
工地门卫岗位职责范本
2014/07/01 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
爱心募捐通知范文
2015/04/27 职场文书
使用 CSS 构建强大且酷炫的粒子动画效果
2022/08/14 HTML / CSS