在不分割单词的情况下限制Php中标题的字符数

时间:2012-05-08 19:56:52

标签: php seo title

  

可能重复:
  Shorten String in PHP (full words only)
  How to get first x chars from a string, without cutting off the last word?

很像这个问题:How to Limit the Length of the Title Tag using PHP

......答案类似于:

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

...但是有没有办法实现这个目标,解决方案不会减少任何一个字?因此,如果单词部分超出限制的字符数,解决方案将删除完整的单词,而不是将其限制为字符数?

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

以下可能是更容易实施的解决方案之一,但效率并不高。

看一下wordwrap,它将你的字符串分成多行而不会破坏单词。然后,您可以使用例如,通过换行将结果字符串拆分。 explode("\n", $var, 2)获得第一行,这将是你的头衔。

答案 2 :(得分:0)

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

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

重复问题的答案提供了更好的解决方案。