限制字符串中的字符数

时间:2012-05-11 08:36:27

标签: php

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

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

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

e.g

所以这样做可以获得更长的标题:

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

这样可以缩短标题:

“这是一个标题”

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

10 个答案:

答案 0 :(得分:2)

public function Truncate($string, $maxLen)
{
    if (strlen($string) > $maxLen)
    {
        return substr($string, 0, $maxLen) . '...';
    }
    return $string;
}

答案 1 :(得分: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;
     ?>

答案 2 :(得分:0)

试试这个:

if (strlen($eventtitle1_str) > 30) {
    $eventtitle1_str  = substr($eventtitle1_str,0,30) . "…";
}

答案 3 :(得分:0)

if ( strlen ( $eventtitle1_str ) > 30 ) {
  //Some logic
}
else {
  // Some logic
}

答案 4 :(得分:0)

请参阅strlen

例如:

echo substr($eventtitle1_str,0,30) . (strlen($eventtitle1_str) > 30 ? "…" : "");

答案 5 :(得分: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); 
     }

 ?>

感谢

答案 6 :(得分: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;
}

答案 7 :(得分:0)

除了这里的许多正确答案我还建议在HTML中使用 &hellip;实体而不是...以及 MBSTRING 扩展名。< / p>

所以代码看起来像:

$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;
}

答案 8 :(得分:0)

试试这个

  

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

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

答案 9 :(得分: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 );
}