0

重複の可能性:
PHP で文字列を短縮する (完全な単語のみ)
最後の単語を切り取らずに、文字列から最初の x 文字を取得する方法は?

この質問によく似ています: PHPを使用してタイトルタグの長さを制限する方法

...答えは次のようになります。

 [title]  ?php echo substr( $mytitle, 0, 70 );  [/title]

...しかし、ソリューションが単語を半分にカットしない場合にこれを達成する方法はありますか? 単語が制限の文字数を部分的に超えている場合、ソリューションは文字数で制限するのではなく、単語全体を削除しますか?

4

3 に答える 3

2

これで 95% 達成できるかもしれませんが、完璧ではありません...

$mytitle = 'How to Limit the Length of the Title Tag using PHP';
$arr = explode(' ',$mytitle);
$string = '';

foreach($arr as $word) {
    if(strlen($string) > 69) break;
    $string .= ' ' . $word;
}

echo $string;
于 2012-05-08T20:05:15.860 に答える
0

最適ではない場合でも、やや面白い解決策(テストされていませんが、アイデアを得る必要があります):

$wrapped = wordwrap($mytitle, 70, "ENDOFTITLE")
$truncated = substr($wrapped, 0, strpos($wrapped, "ENDOFTITLE"));

ただし、重複する質問への回答は、より良い解決策を提供します。

于 2012-05-08T20:06:09.063 に答える
0

以下はおそらく実装が簡単なソリューションの 1 つですが、最も効率的ではありません。

wordwrap単語を分割せずに文字列を複数の行に分割する を見てください。次に、たとえばを使用して、結果の文字列を行シフトで分割できます。explode("\n", $var, 2)タイトルとなる最初の行を取得します。

于 2012-05-08T20:04:18.627 に答える