在描述后显示三个点(...)?

时间:2013-02-16 13:52:19

标签: php

我使用这个PHP代码来显示最近的帖子和描述。最大desc 100字。如何在100个单词后显示3个点(像这样:这是bla bla bla的内容...... )。

请有人帮助我!

这是我的PHP代码:

<?php
$rss = new DOMDocument();
$rss->load('http://domain.com/feed/');
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
);
array_push($feed, $item);
}
$limit = 5;
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' &amp; ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$description = $feed[$x]['desc'];
$description = substr($description, 0, 138); 
$date = date('d F Y - H:m', strtotime($feed[$x]['date']));
echo '<li><strong><a href="'.$link.'" title="'.$title.'">'.$title.'</a></strong>';
echo '<br><small>'.$date.'</small>';
echo '<br>'.$description.'</br></li>';
}
?>

1 个答案:

答案 0 :(得分:0)

如果我像这样查看你的代码,但这是在计算每个符号,而不是单词:

if(strlen($description) > 138) {
    $description = substr($description, 0, 138).'&hellip;'; 
}

如果您想使用单词,请执行以下操作:

// put this function above your code....
function string_limit_words($string, $word_limit=100, $ending = '&hellip;') { 
    $words = explode(' ', $string); 
    if(count($words) > $word_limit) {
        return implode(' ', array_slice($words, 0, $word_limit)).$ending; 
    }
    return $string;
}

// and use it like this...
echo '<br>'.string_limit_words($description).'</br></li>';