mb_strimwidth函数的简单应用

» 2010-07-08 73条评论

在《简单的文章截断方法, 支持 Read more 加上 nofollow》一文中所使用的文章截断是使用mb_strimwidth函数来实现的,其实稍微想想就可以发现很多地方都可以使用这个函数,下面说明一下和举一些例子。

先说说mb_strimwidth函数

mb_strimwidth是超轻量级的php函数,用来获取指定的宽度截断字符串。

使用方法

mb_strimwidth  (  string $str  ,  int $start  ,  int $width  [,  string $trimmarker  [,  string $encoding  ]] )

参数说明

$str //指定字符串

$start //指定从何处开始截取

$width //截取文字的宽度

$trimmarker //超过$width数字后显示的字符串

例一、限制文章标题文字个数

如我侧边栏的“Random Posts”和“Recent Posts”,因为侧边栏宽度有限,所以对于长文章标题会出现两行,这样有点影响美观,这时就可以用mb_strimwidth函数来限制文字个数在一行内。

文章标题的调用函数一般是这样:

<?php the_title(); ?>

我主题的侧边栏最多大概显示20个中文,所以可以限制在18个文字内,使用mb_strimwidth函数后变成如下:

<?php echo mb_strimwidth(get_the_title(), 0, 36,"..."); ?>

其中 36 代表 18 个双字节文字

例二、最新评论的文字个数

上篇文章《带头像显示的最新评论代码 - 蛋疼篇》里面的最新评论长度是用css的overflow:hidden属性来隐藏评论长度的,从而使每条评论占用一行,其实也可以用mb_strimwidth函数来截取固定的文字数量

最新评论代码中评论内容是:strip_tags($rc_comm->comment_content)

用mb_strimwidth函数限制文字变成:mb_strimwidth(strip_tags($rc_comm->comment_content), 0, 36,"...")

很方便的一个函数,还有其他应用就自己举一反三吧,mb_strimwidth()是php的函数,所以不依赖wp的版本。

zww
or
oooo

“mb_strimwidth函数的简单应用”有73条评论

  1. mice says:

    果断沙发,哈哈 我网站 那个好玩的游戏 栏目有的救了..我都是用css才截断的 效果不好看..主要是各个浏览器 效果不同 杯具...

    1. zwwooooo says:

      @mice 其实截取后面加上...还是很赞的,呵呵

  2. Afio says:

    犀利的沙发~

    1. zwwooooo says:

      @Afio 你是犀利的板凳

  3. Afio says:

    看不懂的说.....我的主题自带了.... :!: 啊 下面的表情改换了.... :???:

    1. zwwooooo says:

      @Afio 表情?用了很久了

  4. 小邪 says:

    哎呀呀,吃完饭板凳也被抢了 ·

    1. mice says:

      @小邪 邪哥 好久不见..

    2. zwwooooo says:

      @小邪 这大热天地板下面好乘凉 :mrgreen:

    3. 小邪 says:

      @mice 叫小邪就好,嘿嘿 ~ :grin:

  5. mice says:

    丫丫 还敢说沙发

  6. 林木木 says:

    很好用的一个函数!

  7. hzlzh says:

    可以给我首页的twitter输出消息加上这个函数,方便CSS样式 :mrgreen:

    1. zwwooooo says:

      @hzlzh 是啊,非常方便

  8. 球犯 says:

    其实我真的很想知道这些PHP相关的知识你是从哪学的,我还是个什么也不懂得菜鸟,很茫然呢

    1. zwwooooo says:

      @球犯 其实我也没学php,折腾多了自然就会接触到

  9. ifenwen says:

    手动添加比较好用

    另乐铺又搞活动了 上期没有参加的这次别错过了
    七夕快到了,一起来将爱传递: http://www.lepu.com/events/2010/77/6866

  10. max says:

    还可以用在 meta description 中。

    1. zwwooooo says:

      @max 很少用

  11. 学习了,博主厉害

  12. winy says:

    好像有些主机不支持mb_strimwidth

    1. zwwooooo says:

      @winy 限制了,所以不提倡直接整合在主题里

  13. 阿邙 says:

    我用这个函数 最后一个字经常乱码。
    估计服务器不支持。 :cry:

    1. zwwooooo says:

      @阿邙 一定要双数

    2. 阿邙 says:

      @zwwooooo 那难怪了 不过看万戈那里的都没有乱码..

    3. zwwooooo says:

      @阿邙 我这里有么? :evil:

    4. 阿邙 says:

      @zwwooooo 没有 应该是我服务器的关系了

  14. 蛋卷 says:

    又看不懂了 :sad:

  15. 猪八戒 says:

    和蛋卷一样看不懂。

  16. 万戈 says:

    哦耶耶,我用的也是这个方法来截断的

    1. zwwooooo says:

      @万戈 你肯定早用上,我文囧写写

  17. 签名 says:

    想学习 学不了 知识储备不够

  18. 7cbt says:

    我要补课了, 我现在看到函数会头先撞桌子。

    1. zwwooooo says:

      @7cbt 函数还是挺方便的,最怕的是要自己敲函数 - -

    2. 7cbt says:

      @zwwooooo 哈哈 自己敲函数 我也不行,那要愧于我当年数学没学好

  19. 冷轩信 says:

    不懂、、、、、、、

  20. A.shun says:

    看不懂。。。继续more截断

    用opera 10.70路过

发表评论

昵称 *

网址

B em del U Link Code Quote