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

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(使用前将#替换为@)

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

随机推荐

  • System.DirectoryServices.DirectoryServicesCOMException:发生操作错误

    我有相同的网络应用程序在其他三台服务器上运行 有人知道为什么第四台服务器无法工作吗 查看错误和堆栈跟踪 发生操作错误 描述 执行期间发生未处理的异常 当前的网络请求 请查看堆栈跟踪以了解更多信息 有关错误及其在代码中的来源的信息 异常详细信
  • 重新定位 Jquery UI 自动完成结果框

    我正在使用 Jquery UI 自动完成插件作为直接的搜索词建议工具 它已启动并运行 没有任何问题 只是我无法移动结果框 我基本上需要将其向左移动 20 像素 向下移动 4 像素 我尝试覆盖 Jquery UI CSS 但无法重新定位该框
  • 生成包含 `partykit:mob()` 对象的并排节点模型的表

    假设我使用以下方法拟合模型partykit mob 之后 我想生成一个包含所有节点的并排表 包括使用整个样本拟合的模型 在这里我尝试使用stargazer 但其他方式也非常受欢迎 下面是一个例子并尝试获取表格 library partyki
  • Istio 从 ext-auth 中排除服务

    大家好 我已经在 minikube 上设置了 istio 并在网关上设置了 envoy ext auth 过滤器 我有两个微服务在不同的 Pod 中运行 向外界公开虚 拟服务 auther 和 appone 我设置的 ext auth 过滤
  • 将数据框中的每个列表转换为普通列

    我从网络上的多个来源生成了一个数据框 这些数据框事先经过清理 然后使用 cleans lt ls cleans lt cleans grepl Clean News cleans 我第一次尝试将它们绑定在一起的灵感来自 Stack Over
  • 嵌入 YouTube 播放列表,以便播放列表选项始终可见。

    有没有办法利用带有播放列表的 YouTube 嵌入式播放器并使播放列表始终可见 或者 有没有办法默认打开播放列表按钮 到目前为止 我的研究表明 showinfo 1 选项用于使播放列表始终可见 但这似乎不再起作用 showinfo 仅适用于
  • 按顺序插入数组

    简单来说 我正在处理的项目的一部分让我采用按顺序降序的数组并添加一个元素 以便数组保持顺序 最初我以为只要将元素添加到数组中 然后实现 Comparable 后进行排序就可以了 但后来发现任何类型的排序算法都是被禁止的 收藏亦然 有点不知道
  • DB->count() 返回与 count(DB->get()) 不同的值

    我正在尝试运行最简单的查询 DB table user visits gt groupBy user id gt count 但它返回了错误的数字 8 如果我把它改成这样 count DB table user visits gt grou
  • 使用递归从二叉搜索树中删除节点

    因此 我尝试使用类中的这两个函数从树中删除节点 不幸的是 它只是没有删除任何内容 我想知道它出了什么问题 任何帮助将不胜感激 def Find Min self node current node while current left is
  • 将 Azure 数据库配置为只读

    有没有办法将 Azure sql 数据库临时配置为只读 在我尝试创建只读用户时 我运行了以下命令 CREATE LOGIN reader WITH password successful CREATE USER readerUser FRO
  • 如何在iPad中使用UIImagePickerController?

    您好 我正在开发一个通用应用程序 iPhone iPad 一个功能是我必须从相册中选择一张照片并将其显示在 UIImageView 上 现在的问题是它在 iPhone 上运行良好 但当我尝试打开相册时它崩溃了 我在操作表委托中的代码是这样的
  • 由于 MPI init 中止,mpiexec 失败

    我正在尝试安装MPICH http en wikipedia org wiki MPICH2 在运行 Ubuntu 11 04 Natty Narwhal 的 64 位机器上 我用了 sudo apt get install mpich2
  • 每次调用或打开页面时都会增加变量吗?

  • 如何使用 HTTPS 代理启动 VSCode chrome 调试器

    我之前曾在没有 SSL 代理的情况下从 VSCode 启动过 chrome 所以我猜这就是我问题的根源 这是我的 VSCode launch json 配置 name Launch Chrome request launch type pw
  • protege 中的自反属性

    This https ufile io rcv9m是我用 protege 5 创建的本体 如果我做cl1 and cl2不相交 那么本体是不一致的 但是如果我取消选中is friend of反身性的 本体论不再不一致 我的本体有什么问题吗
  • IIS7 应用程序请求路由 HTTPS

    我有一个反向代理 可将流量路由到我的应用程序服务器 我的公共网站有登录功能 通过 HTTPS 提供服务 SSL 证书仅安装在反向代理服务器中 我的应用服务器没有 SSL 证书 反向代理服务器中启用了 SSL 卸载 到目前为止效果很好 我可以
  • 如果 Task Runner Explorer 任务失败则取消构建

    我正在使用 Visual Studio 任务运行程序 2015 来运行绑定到构建之前的 Gulp 任务 我已经将其设置为当 gulp 任务失败时 它会发送退出代码 1 并在最后显示 进程以代码 1 终止 然而构建仍在继续 这将取消团队城市中
  • 如何在 Perforce 2013 之前将搁置的变更列表取消搁置到另一个分支?

    Using Perforce 服务器 2012 2 538478 如何将文件从主干取消搁置到另一个分支 当尝试这样做时 我得到 filename not mapped to your workspace view 在 Perforce 20
  • jdt.core Java 模型的 JUnit 测试

    我正在尝试为我的代码进行一些 JUnit 测试 但问题是 我使用了 ICompilationUnit IPackageFragment ITypes 等 Java 模型 我不知道如何创建一些 ICompilationUnit 然后进行测试
  • 如何在由空格分隔的字符串的中点添加换行符

    使用 php 如何在字符串相对中间的空白处插入换行符 或者换句话说 如何计算句子中的单词数 然后在句子的中间点换行 这个想法是为了避免博客文章标题第二行出现寡妇 废弃的单词 方法是将每个标题切成两半 如果标题占用一行以上 则将其放在两行上