可能的重复项:
在 PHP 中缩短字符串(仅限完整单词)
如何在不切断最后一个单词的情况下从字符串中获取第一个 x 个字符?
很像这个问题:如何使用PHP限制标题标签的长度
。其中答案类似于:
[title] ?php echo substr( $mytitle, 0, 70 ); [/title]
。但是,在解决方案不会将任何单词切成两半的情况下,有没有办法实现这一目标?因此,如果单词部分超过限制的字符数,解决方案将删除完整的单词,而不是将其限制在字符数上?
这可能会让你达到 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;
以下是更容易实现的解决方案之一,但并不是最有效的。
看看wordwrap
,它将字符串分成多行而不会破坏单词。然后,您可以使用 eg 通过行移将其拆分为生成的字符串。 explode("'n", $var, 2)
获得第一行,这将是您的标题。
一个有点有趣的,如果不是最佳解决方案(未经测试,但你应该明白):
$wrapped = wordwrap($mytitle, 70, "ENDOFTITLE")
$truncated = substr($wrapped, 0, strpos($wrapped, "ENDOFTITLE"));
不过,重复问题的答案提供了更好的解决方案。