0

以下を使用して、文字列内の文字数を制限しています

<?php $eventtitle1 = get_the_title();
$eventtitle1_str = strip_tags($eventtitle1, '');
echo substr($eventtitle1_str,0,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

ここでの多くの正しい答えに加えて、MBSTRING拡張の代わりに HTML でエンティティを使用することもお勧めします。&hellip;...

したがって、コードは次のようになります。

$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 を確認してください。これが役立つことを願っています

于 2012-05-11T08:51:43.507 に答える
0

http://php.net/manual/en/function.str-word-count.phpの仕事だと思いますstr_word_count

$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 に答える