Php函数限制传入字符的数量

时间:2010-07-28 22:34:17

标签: php wordpress

我有一定数量的角色可以放在我要显示的类别中。所以我想知道是否有一种方法可以限制此函数可以输出的字符数量。

我想限制此功能输出:

<?php the_category(', ') ?>
outputs: WordPress, Computers, Blogging

这样的事情:

<?php char_limit(the_category(', '), 14, '...') ?>
outputs: WordPress, Com...

我是php和wordpress的新手,所以关于如何执行的指示会有所帮助。

6 个答案:

答案 0 :(得分:4)

webdestroya的评论和对该问题的重读让我建议substr_replace()

echo substr_replace(the_category(', '),"...",14);

我最初建议使用word_wrap(),但不会截断。

答案 1 :(得分:2)

请参阅substr功能。

答案 2 :(得分:1)

您可以使用子字符串来创建截断函数

function truncate ($str, $length=10, $trailing='...')
{
/*
** $str -String to truncate
** $length - length to truncate
** $trailing - the trailing character, default: "..."
*/
      // take off chars for the trailing
      $length-=mb_strlen($trailing);
      if (mb_strlen($str)> $length)
      {
         // string exceeded length, truncate and add trailing dots
         return mb_substr($str,0,$length).$trailing;
      }
      else
      {
         // string was already short enough, return the string
         $res = $str;
      }
 
      return $res;
 
}

here

获得

答案 3 :(得分:0)

这将通过省略号

获得它
function shorten ($str, $len)
{
    if (strlen($str) > $len) 
    {
        return substr($str, 0, $len) . "...";
    else
    {
        return $str;
    }
}

答案 4 :(得分:0)

如果你看一下the_category是什么,它只是一个包装函数:

function the_category( $separator = '', $parents='', $post_id = false ) {
    echo get_the_category_list( $separator, $parents, $post_id );
}

只需使用以下内容:

$catList = get_the_category_list(', ');
if(strlen($catList)>14)
     $catList = substr($catList,0,14) . "&#8230;";

答案 5 :(得分:-1)

您可能想要使用帖子的摘录 - 有一个字段可以填充并显示比第一个x字符更有意义的内容

这是一个解释摘录内容的链接: http://codex.wordpress.org/Excerpt

这是函数引用 http://codex.wordpress.org/Function_Reference/the_excerpt

基本上你可以使用:<?php the_excerpt(); ?>

或在你的情况下:

<?php if ( is_category() || is_archive() ) {
    the_excerpt();
} else {
    the_content();
} ?>

您可以使用以下方法控制摘录长度:

function new_excerpt_length($length) {
    return 20;
}
add_filter('excerpt_length', 'new_excerpt_length');

如果你不想使用摘录的想法,你仍然可以采用旧的方式:

<?php
$string =  get_the_content('');
$newString = substr($string, 0, 20);
echo $newString;
?>

希望有所帮助:)

您可能还想看一下插件