PHPで自動生成されるページタイトルの文字数を制限したい。
ページタイトルに必要な最大文字数(70文字)を入力するだけで、これを実行できるphpまたはjqueryコードを思いつくことができますか?
このようなものはどうですか?
<title><?php echo substr( $mytitle, 0, 70 ); ?></title>
これは、substrがよく使用されるものです。
<title><?php print substr($title, 0, 70); ?></title>
この単純なtruncate()関数を使用できます。
function truncate($text, $maxlength, $dots = true) {
if(strlen($text) > $maxlength) {
if ( $dots ) return substr($text, 0, ($maxlength - 4)) . ' ...';
else return substr($text, 0, ($maxlength - 4));
} else {
return $text;
}
}
たとえば、テンプレートファイル/タイトルタグを入力する場所:
<title><?php echo truncate ($title, 70); ?>
以前の回答は良かったのですが、マルチバイト部分文字列を使用してください:
<title><?php echo mb_substr($title, 0, 75); ?></title>
そうしないと、マルチバイト文字が分割される可能性があります。
function shortenText($text, $maxlength = 70, $appendix = "...")
{
if (mb_strlen($text) <= $maxlength) {
return $text;
}
$text = mb_substr($text, 0, $maxlength - mb_strlen($appendix));
$text .= $appendix;
return $text;
}
利用方法:
<title><?php echo shortenText($title); ?></title>
// or
<title><?php echo shortenText($title, 50); ?></title>
// or
<title><?php echo shortenText($title, 80, " [..]"); ?></title>