2012-05-08 9 views
0

可能性の重複:
Shorten String in PHP (full words only)
How to get first x chars from a string, without cutting off the last word?分割言葉なしで、PHPでのタイトルの文字数制限

この質問のようにたくさん:How to Limit the Length of the Title Tag using PHP

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

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

...しかし、解決策は半分に任意の単語をカットしない場合、これを達成する方法はありますか?したがって、単語が部分的に制限の文字カウントを超える場合、解決は文字数で制限するのではなく、完全な単語を削除しますか?

+0

可能な重複:http://stackoverflow.com/q/1104306/259457 – Travesty3

答えて

1

これがあなたに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; 
+0

これは素晴らしい作品 - ありがとう!!!!! – GlennFriesen

0

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

は言葉を壊すことなく、複数の行にあなたの文字列を分割wordwrapを見てみましょう。次に、結果を文字列に分割することができます。 explode("\n", $var, 2)最初の行を取得すると、あなたのタイトルになります。

0

非最適であれば、多少面白い溶液(未テストが、あなたのアイデアを得る必要があります):

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

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