如何在由空格分隔的字符串的中点添加换行符

2024-03-09

使用 php:如何在字符串相对中间的空白处插入换行符?或者换句话说,如何计算句子中的单词数,然后在句子的中间点换行?

这个想法是为了避免博客文章标题第二行出现寡妇(废弃的单词),方法是将每个标题切成两半,如果标题占用一行以上,则将其放在两行上。

提前致谢。

更新: 大家好,我意识到我需要 preg_split 函数来按空格分割标题。抱歉,如果问题中该部分不清楚。我修改了 Asaph 的答案并使用了这个:

$title_length = strlen($title);
if($title_length > 30){
    $split = preg_split('/ /', $title, null, PREG_SPLIT_NO_EMPTY);
    $split_at = ceil(count($split) / 2);
    echo $split_at;
    $broken_title = '';
    $broken = false;
    foreach($split as $word_pos => $word){
        if($word_pos == $split_at  && $broken == false){
            $broken_title.= '<br />'."\n";
            $broken = true;
        }
        $broken_title .= $word." ";
    }
    $title = $broken_title;
}   

我是 SO 的新手,社区的力量让我震惊。干杯。


使用 PHP 的wordwrap() http://php.net/manual/en/function.wordwrap.php功能。您可以使用字符串的长度除以 2 作为第二个参数。这是一个例子:

<?php
$sentence = 'This is a long sentence that I would like to break up into smaller pieces.';
$width = strlen($sentence)/2;
$wrapped = wordwrap($sentence, $width);
echo $wrapped;
?>

它输出:

This is a long sentence that I would
like to break up into smaller pieces.

如果您想要 HTML 输出,您可以使用可选的第三个参数来指定分隔符。像这样:

$wrapped = wordwrap($sentence, $width, '<br />');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在由空格分隔的字符串的中点添加换行符 的相关文章