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

以下可能是更容易实施的解决方案之一,但它不是最有效的。

看看wordwrap哪个将您的字符串拆分为多行而不会破坏单词。然后,您可以使用例如换行将其拆分为结果字符串。explode("\n", $var, 2)得到第一行,这将是你的标题。

于 2012-05-08T20:04:18.627 回答
0

一个有点有趣的,如果不是最佳的解决方案(未经测试,但你应该明白):

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

不过,重复问题的答案会提供更好的解决方案。

于 2012-05-08T20:06:09.063 回答