如何限制带有字符数的html文本?

时间:2016-06-17 05:53:40

标签: php html

我有一篇HTML格式的博文内容。我想在帖子列表中只显示25个单词。

当我使用此代码时,由于标签关闭,我收到了一些错误。

function str_limit_word($text, $limit, $ending = '...') {
    if (str_word_count($text, 0) > $limit) {
        $words = str_word_count($text, 2);
        $pos = array_keys($words);
        $text = substr($text, 0, $pos[$limit]) . $ending;
    }
    return $text;
}

我该怎么做?

2 个答案:

答案 0 :(得分:1)

在开始操作字符串之前使用$text = strip_tags($text);。这会从文本中删除HTML,否则如果碰巧在标记中间截断文本,则很可能会返回无效的HTML,并且任何HTML属性也将计入字符串长度。

像这样:

function str_limit_word($text, $limit, $ending = '...') {
    // Remove any HTML tag in the string.
    $text = strip_tags($text); 

    if (str_word_count($text, 0) > $limit) {
        $words = str_word_count($text, 2);
        $pos = array_keys($words);
        $text = substr($text, 0, $pos[$limit]) . $ending;
    }
    return $text;
}

答案 1 :(得分:-1)

试试这个。

       function character_limiter($text, $limit, $start = 0) {
       if(strlen($text) > strlen($limit))
            return substr($text, $start, $limit) . '...';
        else 
            return $text;
      }