我有一篇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;
}
我该怎么做?
答案 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;
}