使用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的新手,我被社区的力量所震撼.干杯.
使用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)
| 归档时间: |
|
| 查看次数: |
2695 次 |
| 最近记录: |