0

我正在使用以下内容来限制字符串中的字符数

<?php $eventtitle1 = get_the_title();
$eventtitle1_str = strip_tags($eventtitle1, '');
echo substr($eventtitle1_str,0,30) . "…"; ?>

如果字符串超过 30 个字符,是否可以添加“...”,但如果少于 30 个字符,是否可以添加?

例如

因此,它会为更长的标题执行此操作:

“这是一个更长的时间……”

它为更短的标题执行此操作:

“这是一个标题”

(即不是这个 - “这是一个标题......”)

4

10 回答 10

2
public function Truncate($string, $maxLen)
{
    if (strlen($string) > $maxLen)
    {
        return substr($string, 0, $maxLen) . '...';
    }
    return $string;
}
于 2012-05-11T08:39:16.823 回答
2

试试这个

<?php $eventtitle1 = get_the_title();
    $eventtitle1_str = strip_tags($eventtitle1, '');
    $strlen= strlen ( $eventtitle1_stng );
    if($strlen>30)
    echo substr($eventtitle1_str,0,30) . "…";
    else
    echo $eventtitle1_str;
     ?>
于 2012-05-11T08:40:20.893 回答
0

试试这个:

if (strlen($eventtitle1_str) > 30) {
    $eventtitle1_str  = substr($eventtitle1_str,0,30) . "…";
}
于 2012-05-11T08:39:20.393 回答
0
if ( strlen ( $eventtitle1_str ) > 30 ) {
  //Some logic
}
else {
  // Some logic
}
于 2012-05-11T08:39:54.207 回答
0

strlen

例如:

echo substr($eventtitle1_str,0,30) . (strlen($eventtitle1_str) > 30 ? "…" : "");
于 2012-05-11T08:40:49.677 回答
0

您可以strlen用于检查字符数。

<?php $eventtitle1 = get_the_title();
    $eventtitle1_str = strip_tags($eventtitle1, '');
     if(strlen($eventtitle1_str) > 30 ){     
       echo substr($eventtitle1_str,0,30) . "…"; 
    }else{
       echo substr($eventtitle1_str,0,30); 
     }

 ?>

谢谢

于 2012-05-11T08:41:51.080 回答
0
<?php
$eventtitle1 = get_the_title();
$eventtitle1_str = strip_tags($eventtitle1, '');

if (strlen($eventtitle1_str) > 30) {
    echo substr($eventtitle1_str, 0, 30)."…";
} else {
    echo $eventtitle1_str;
}
于 2012-05-11T08:42:48.783 回答
0

除了这里的许多正确答案之外,我还建议使用&hellip;HTML 中的实体...而不是MBSTRING扩展名。

所以代码看起来像:

$eventtitle1 = get_the_title();
$eventtitle1_str = strip_tags($eventtitle1, '');
if(mb_strlen($eventtitle1_str) > 30)
    echo mb_substr($eventtitle1_str, 0, 30) . "&hellip;";
} else {
    echo $eventtitle1_str;
}
于 2012-05-11T08:45:51.653 回答
0

试试这个

echo substr_replace($eventtitle1_str, '...', 30);

在这里查看示例#1,希望这可以帮助:
http ://us.php.net/manual/en/function.substr-replace.php

于 2012-05-11T08:51:43.507 回答
0

我认为这是str_word_count http://php.net/manual/en/function.str-word-count.php的工作

例子

$test = " I love to play foodtball";
var_dump ( substr ( $test, 0, 12 ) );
var_dump ( wordCount ( $test, 12 ) );

输出

string ' I love to p' (length=12)
string 'I love to play ...' (length=18)   

你能看到一个比另一个更具可读性吗

使用的功能

function wordCount($str, $max, $surffix = "...") {
    $total = 0;
    $words = str_word_count ( $str, 1 );
    $output = "";
    foreach ( $words as $word ) {
        $total += strlen ( $word );
        if ($max < $total)
            break;
        $output .= $word . " ";
    }
    $output .= $surffix ;
    return trim ( $output );
}
于 2012-05-11T08:52:07.380 回答