php自定义函数截取汉字长度


Posted in PHP onMay 15, 2014
function msubstr($str,$start,$len) { 
$strlen=$start+$len; 
for($i=0;$i<$strlen;$i++) { 
if(ord(substr($str,$i,1))>0xa0) { 
$tmpstr.=substr($str,$i,2); 
$i++; 
} else 
$tmpstr.=substr($str,$i,1); 
} 
return $tmpstr; }

<?PHP 
$str="这个字符好长呀,^_^"; 
$Short_Str=showShort($str,4);//截取前面4个汉字,结果为:这个字符... 
Echo "$Short_Str"; 
Function csubstr($str,$start,$len) 
{ 
$strlen=strlen($str); 
$clen=0; 
for($i=0;$i<$strlen;$i++,$clen++) 
{ 
if ($clen>=$start+$len) 
break; 
if(ord(substr($str,$i,1))>0xa0) 
{ 
if ($clen>=$start) 
$tmpstr.=substr($str,$i,2); 
$i++; 
} 
else 
{ 
if ($clen>=$start) 
$tmpstr.=substr($str,$i,1); 
} 
} return $tmpstr; 
} 
Function showShort($str,$len) 
{ 
$tempstr = csubstr($str,0,$len); 
if ($str<>$tempstr) 
$tempstr .= "..."; //要以什么结尾,修改这里就可以. 
return $tempstr; 
}

再来看看唠叨的方法 怎么样,简洁吧?
$len = 19; 
$text = "怎么将新闻的很长的标题只显示前面一些字,后面用.....来代替?"; 
echo strlen($text)<=$len ? $text : (substr($text,0,$len).chr(0)."....");
PHP 相关文章推荐
php 无限级缓存的类的扩展
Mar 16 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
Jun 23 PHP
php删除文件夹及其文件夹下所有文件的函数代码
Jan 23 PHP
PHP+MySQL删除操作实例
Jan 21 PHP
PHP实现的一致性哈希算法完整实例
Nov 14 PHP
yii2中使用Active Record模式的方法
Jan 09 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
Apr 22 PHP
php使用array_chunk函数将一个数组分割成多个数组
Dec 05 PHP
PHP fclose函数用法总结
Feb 15 PHP
Laravel框架查询构造器简单示例
May 08 PHP
PHP中Session ID的实现原理实例分析
Aug 17 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
Oct 10 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
May 15 #PHP
php小技巧之过滤ascii控制字符
May 14 #PHP
PHP 之 写时复制介绍(Copy On Write)
May 13 #PHP
PHP中copy on write写时复制机制介绍
May 13 #PHP
php读取富文本的时p标签会出现红线是怎么回事
May 13 #PHP
php的慢速日志引起的Mysql错误问题分析
May 13 #PHP
PHP实现的MongoDB数据库操作类分享
May 12 #PHP
You might like
js 加载时自动调整图片大小
2008/05/28 Javascript
jquery 页面全选框实践代码
2010/04/02 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
JavaScript极简入门教程(二):对象和函数
2014/10/25 Javascript
jquery实现的淡入淡出下拉菜单效果
2015/08/25 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
webpack配置文件和常用配置项介绍
2017/04/28 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
Node.js中DNS模块学习总结
2018/02/28 Javascript
详解js跨域请求的两种方式,支持post请求
2018/05/05 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
2018/07/10 Javascript
解决axios发送post请求返回400状态码的问题
2018/08/11 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
2018/09/26 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
vue.js的状态管理vuex中store的使用详解
2019/11/08 Javascript
[01:06:07]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS CIS
2014/05/22 DOTA
Python编程中用close()方法关闭文件的教程
2015/05/24 Python
Python入门_浅谈for循环、while循环
2017/05/16 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
python3+PyQt5实现自定义流体混合窗口部件
2018/04/24 Python
Python hashlib模块用法实例分析
2018/06/12 Python
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
如何基于python把文字图片写入word文档
2020/07/31 Python
如何利用python进行时间序列分析
2020/08/04 Python
详解CSS3中强大的filter(滤镜)属性
2017/06/29 HTML / CSS
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
基于HTML5 Canvas:字符串,路径,背景,图片的详解
2013/05/09 HTML / CSS
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
商务日语毕业生自荐信
2013/11/23 职场文书
节电标语大全
2014/06/23 职场文书
创先争优演讲稿
2014/09/15 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
JavaScript数组reduce()方法的语法与实例解析
2021/07/07 Javascript
PostGIS的安装与入门使用指南
2022/01/18 PostgreSQL