转用PHP截断函数mb_substr()

» 2010-10-27 95条评论

最近主机搬到朋友 Timothy(这里表示非常感谢!)那里,不知什么原因,主机对我主题原来使用的用来截断中文的 mb_strimwidth() 函数支持不好,具体原因不知。

mb_strimwidth() 函数可以参考我这篇文章《mb_strimwidth函数的简单应用》,一般有后台(Cpanel、DA)的主机都支持。

于是我今天查了下 PHP 手册,转用 mb_substr() 函数来截断文字。

Function: mb_substr( $str, $start, $length, $encoding )

$str,需要截断的字符串
$start,截断开始处
$length,长度(注意,这个跟mb_strimwidth不同,1就代表一个中文字符)
$encoding,编码,我设为 utf-8

:截断文章标题,控制在15个文字

<?php echo mb_substr(get_the_title(), 0, 15,"utf-8"); ?>

就这样,没了。

zww
or
oooo

“转用PHP截断函数mb_substr()”有95条评论

  1. 迷笛 says:

    在本地修改一个主题的时候也是碰到无法使用mb_strimwidth,但其它主题正常。当我改为post_content, 0, 230,"utf-8"); ?>之后出现的却是带缩略图的 :???: 并且这个缩略图是很完美不变形的 :mrgreen:

    1. zwwooooo says:

      @迷笛
      可能此主题带了自定义the_content

  2. LAONB says:

    哎,看来我不是学程序的料了,而且也来不及学了。
    我折腾了几天的东西,结果同事帮忙,一行代码搞定,这就是差距啊。

    1. zwwooooo says:

      @LAONB
      - - 哈哈哈

  3. 淬念 says:

    我的淬念一直有这个问题,今天,我解决了,因为我决定不截断标题了.

    1. zwwooooo says:

      @淬念
      哦,其实主机配置ok的话,没有这个问题

回复给 A.shun ¬
取消回复

昵称 *

网址

B em del U Link Code Quote