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

Bra*_*own 5 php string text

使用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;
}   
Run Code Online (Sandbox Code Playgroud)

我是SO的新手,我被社区的力量所震撼.干杯.

Asa*_*aph 5

使用PHP的wordwrap()功能.您可以使用字符串的长度除以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;
?>
Run Code Online (Sandbox Code Playgroud)

它输出:

This is a long sentence that I would
like to break up into smaller pieces.
Run Code Online (Sandbox Code Playgroud)

如果需要HTML输出,可以使用可选的3rd参数指定中断字符.像这样:

$wrapped = wordwrap($sentence, $width, '<br />');
Run Code Online (Sandbox Code Playgroud)