如何限制codeigniter中的numwords文章?

时间:2014-04-10 02:11:05

标签: php codeigniter

我有带有codeigniter的cms博客。但是,当我限制文章中的内容不起作用。我是codeigntier的新手,你能告诉我我该做什么。

这是cms_helper.php

    function get_excerpt($article, $numwords = 20){
    $string = '';
    $url = article_link($article);
    $string .= '<h2>' . anchor($url, e($article->judul_berita)) .  '</h2>';
    $string .= '<p class="pubdate">' . e($article->tanggal) . '</p>';
    $string .= '<p>' . e(limit_to_numwords(strip_tags($article->content), $numwords)) . '</p>';// content is not show
    $string .= '<p>' . anchor($url, 'Read more', array('judul_berita' => e($article->judul_berita))) . '</p>';
    return $string;
}

function limit_to_numwords($string, $numwords){
    $excerpt = explode(' ', $string, $numwords + 1);
    if (count($excerpt) >= $numwords) {
        array_pop($excerpt);
    }
    $excerpt = implode(' ', $excerpt);
    return $excerpt;
}

function e($string){
    return htmlentities($string);
}
控制器中的

    private function _homepage()
        {
            $this->load->model('mberita');
            $this->db->limit(6);
            $this->data['articles'] = $this->mberita->get_berita();

            //var_dump($this->data['articles']);
        }

请帮我做什么。谢谢。

2 个答案:

答案 0 :(得分:1)

您应该使用Codeigniter文本助手:

$this->load->helper('text'); // add this to the the function or to the constructor

$string .= '<p>' . e(word_limiter(strip_tags($article->content), $numwords)) . '</p>';

在本文中,您可以找到许多有用的codeigniter text functions

答案 1 :(得分:0)

尝试下面的示例。这肯定会奏效。

function limit_to_numwords($text,$no_words){
   $next=substr($text,$no_words,strlen($text));                        
   $spacepos=strpos($next," ");                     
   $desc=substr($text,0,$no_words+$spacepos)."...";
   return $desc;
}

通过此,您可以从最近的空格字符中获取精确的完整单词文本。希望这将有助于您的要求。

另外,尝试将该功能称为&#34; $ this-&gt; limit_to_numwords&#34;