使用 PHP 将带有换行符的字符串分解为 HTML 段落

2024-01-10

我从 MySQL 数据库获取文本,该文本被分成行(段落)。它存储在变量中$post_data['content']。如何使其打印时带有换行符?

我当前使用的代码:

$post_data['content'] = explode("\n", $post_data['content']);
$post = "<p>" . implode("</p><p>", array_values($post_data['content'])) . "</p>";

这并没有达到我想要的程度。

如果我在数据库中有这样的文本:

line 1 paragraph 1,
line 2 paragraph 1.

line 3 paragraph 2,
line 4 paragraph 2,
line 5 paragraph 2.

代码将显示如下(我don't want):

<p>line 1 paragraph 1,</p>

<p>line 2 paragraph 1.</p>

<p>line 3 paragraph 2,</p>

<p>line 4 paragraph 2,</p>

<p>line 5 paragraph 2.</p>

如果行之间没有空格(只有一个换行符),我希望它将段落分组在一起。也许爆炸后阵列出了什么问题?


首先,将换行符替换为<br />:

$post = nl2br($post_data['content']);

然后更换双<br />带有结束和开始段落标记(原始换行符由nl2br,所以我使用正则表达式,匹配所有样式的换行符):

$post = '<p>' . preg_replace('#(<br />[\r\n]+){2}#', '</p><p>', $post) . '</p>';

注意,这是XHTML语法,如果你想要HTML,请更改代码如下:

$post = nl2br($post_data['content'], false);
$post = '<p>' . preg_replace('#(<br>[\r\n]+){2}#', '</p><p>', $post) . '</p>';

Test:

$post_data['content'] = <<<TXT
line 1 paragraph 1,
line 2 paragraph 1.

line 3 paragraph 2,
line 4 paragraph 2,
line 5 paragraph 2.
TXT;

$post = nl2br($post_data['content'], false);
$post = '<p>' . preg_replace('#(<br>[\r\n]+){2}#', "</p>\n\n<p>", $post) . '</p>';

echo $post;

测试输出:

<p>line 1 paragraph 1,<br>
line 2 paragraph 1.</p>

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

使用 PHP 将带有换行符的字符串分解为 HTML 段落 的相关文章

  • 正确的标头 php mysql blob 显示图像

    我正在尝试在我的 PHP 页面中显示来自 mysql blob 的图像 我知道这不是最佳实践 然后我会将其引入我的 iOS 应用程序中 我在设置页面标题时遇到问题 我认为需要将其设置为图像 所以 这显示了图像 但我不相信页眉是正确的 hea
  • 如何使用php在mysql数据库中添加照片? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我对 PH
  • MySQL 中布尔值的 TINYINT 与 ENUM(0, 1)

    MyISAM 表和 MySQL 5 1 中具有 0 和 1 值的 Tinyint 或 ENUM 0 1 哪个更好 您可以使用BIT 1 如中提到的MySQL 5 1 参考 http dev mysql com doc refman 5 1
  • 将 div 设置为 post 方法结果页面的目标容器

    我有一个 div 标签 也分为两个 div 这是代码 div div div div
  • 为什么 jQuery 点击事件会多次触发

    我这里有这个示例代码http jsfiddle net DBBUL 10 http jsfiddle net DBBUL 10 document ready function creategene click function confir
  • 如何通过 HTML 按钮播放声音

    我目前通过网站播放音乐的方法是通过 HTML 音频标签 不过我希望能够通过 HTML 按钮来播放它 该按钮应该能够在播放和停止之间切换音乐 我在 JSFiddle 创建了一个示例 但不知道如何实现它 有人可以告诉我如何使用我的 JSFidd
  • 在 PHP 中使用数组来比较用户名/密码

    我有以下 php 脚本 其中有一个用户名和密码 Username user1 Password pass1 if isset POST submitform Clean up the input values foreach POST as
  • XPATH 查询、HtmlAgilityPack 和提取文本

    我一直在尝试从名为 tim new 的类中提取链接 我也得到了解决方案 给出了解决方案 片段和必要的信息here https stackoverflow com questions 2982862 extracting a table ro
  • phpstorm xdebug 与 symfony2 项目

    我正在尝试使用 xdebug 和 phpstorm 调试 symfony2 应用程序 我的本地开发环境是Ubuntu 14 04 with apache2 Xdebug版本是2 2 7 我在另一个 php 不是 symfony2 项目上使用
  • 如何改变HTML5视频的播放速度?

    如何更改 HTML5 中的视频播放速度 我查过视频标签的属性 https www w3schools com html html5 video asp在 w3school 但无法做到这一点 根据这个网站 http www chipwreck
  • PHP:如何检查总数。 URL 中的参数?

    我正在使用 REQUEST 检索参数 有没有办法找到总数 URL 中的参数 而不是检索每个参数然后进行计数 这将为您提供总数 分隔的 URL 查询参数 count explode SERVER QUERY STRING 如果您只想要唯一的参
  • iframe 重新加载按钮

    我浏览了很多网站 但似乎没有一个能正常工作 或者我不明白它们 我想要一个刷新某个 iframe 的简单按钮 该按钮将位于父页面上 并且 iframe 名称为 Right 有很多方法可以做到这一点 假设这个iframe markup 我们可以
  • Heredoc:常用的“EOT”实际上是什么意思?

    PHP s 定界例子 http www php net manual en language types string php language types string syntax heredoc似乎总是使用 EOT 有时是 EOD 作
  • 将错误代码映射到 C++ 中的字符串

    将错误代码从枚举映射到字符串的更有效方法是什么 在 C 中 例如 现在我正在做这样的事情 std string ErrorCodeToString enum errorCode switch errorCode case ERROR ONE
  • 如何在 PHP >= 5.3 严格模式下向对象添加属性而不产生错误

    这必须很简单 但我似乎找不到答案 我有一个通用的 stdClass 对象 foo没有属性 我想添加一个新属性 bar尚未定义 如果我这样做 foo new StdClass foo gt bar 1234 严格模式下的 PHP 会抱怨 将属
  • PHP 相当于朋友或内部

    php 中是否有相当于 朋友 或 内部 的东西 如果没有 是否有任何模式可以遵循来实现这种行为 Edit 抱歉 但标准 Php 不是我想要的 我正在寻找类似于马戏团长所做的事情 我有一些类在后端进行 C 风格的系统调用 并且杂耍已经开始变得
  • 有关于 PHP 中的 V8JS 的文档吗?

    有没有关于V8JS的文档 我是否只需要标准 PHP 或一些扩展即可使用 V8JS 我将非常感谢有关 PHP 中的 V8JS 的任何信息 要求 PHP 5 3 3 和 V8 库和标头安装在正确的路径中 Install http www php
  • SimpleXML插入处理指令(样式表)

    我想集成一个XSL文件在一个XML给我的字符串php CURL命令 我试过这个 output XML gived me by curl option hotel simplexml load string output hotel gt a
  • html,将链接显示为普通文本

    我想知道您是否可以将链接显示为普通文本 a href target self img src width 121 height 20 alt div style font size 12px display block font color
  • 我可以使用 jQuery 动态创建文件(及其内容)吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 这是我的 HTML 代码 ul li

随机推荐

  • 如何使 git-diff 创建“上下文”格式差异?

    我有一个 Git 存储库 我需要从中创建一个除默认值之外的补丁文件git diff http git scm com docs git diff格式 我的用例是我有一台笨重的旧 OSF 1 机器 我需要在上面应用补丁 并且 bin patc
  • Flexbox 在 Safari 中不工作

    我创建的布局在 Safari 中不起作用 但在 Chrome 中完美运行 我有一种感觉 这与 wrapper or the frame但我尝试将 Flex Shrink 值设置为0无济于事 JSFiddle https jsfiddle n
  • 如何让Intellij Idea Coverage显示全彩色线条?

    在 Eclipse 中 大多数覆盖插件都用不同的颜色显示覆盖 部分覆盖 未覆盖的线 即整条线涂上颜色 在 IntelliJ Idea 中 我还找不到用描述性颜色绘制整条线的方法 仅在左侧添加了一个几乎难以察觉的小标记 使得部分覆盖 未覆盖的
  • CakePHP:无法识别 hasMany 关联

    尝试属于用户 用户有很多尝试 在 User php 模型 中 public hasMany array Attempt gt array className gt Attempt order gt modified DESC 在Attemp
  • 如何激活每个项目并解析它们的信息?

    我在使用 python 抓取网页时遇到了不同类型的问题 单击图像时 有关其风味的新信息会出现在图像下方 我的目标是解析与每个图像相关的所有风味 我的脚本可以解析当前活动图像的风格 但在单击新图像后会中断 我的循环中的一点点抽动就会引导我走向
  • 我可以在 JOIN 条件中使用 CASE 语句吗?

    下图是 Microsoft SQL Server 2008 R2 系统视图的一部分 从图中我们可以看出 之间的关系sys partitions and sys allocation units取决于的值sys allocation unit
  • 使用属性字符串突出显示 NSStatusItem

    我有一个 NSStatusItem 我为其使用属性字符串 设置如下 statusItem setAttributedTitle as where as是我的属性字符串 当满足某些条件时 我用它通过不同的颜色来突出显示项目的某些部分 例如 我
  • 如何从消费者更新提供者中的上下文值? [复制]

    这个问题在这里已经有答案了 MyContext js import React from react const MyContext React createContext test export default MyContext 我在一
  • 在 MATLAB 中组合两个结构体的有效方法有哪些?

    我想组合两个具有不同字段名称的结构 例如 从以下内容开始 A field1 1 A field2 a B field3 2 B field4 b 我想拥有 C field1 1 C field2 a C field3 2 C field4
  • 如何在 Android 中将音频 raw 转换为 flac

    我用 audoiRecord 类录制音频 现在我想将音频原始文件转换为 flac 格式 我接下来将 raw 文件转换为 wav private void copyWaveFile String inFilename String outFi
  • 即使已启用,也未为 iOS 启用 API

    我已将地点自动完成或地点 API 与地图 Google 登录和 Firebase RealtimeDatabase 集成 但是当我运行该应用程序时 错误提示 操作无法完成 iOS 版 Places API 未启用 请参阅开发人员指南 htt
  • 如何检查android中用户是否清除了缓存?

    我正在开发的应用程序应该知道用户 android 是否已清除缓存或清除数据 以便我注销用户 这个怎么做 如何判断用户是否清除了缓存 Android操作系统可以自行清除应用程序的缓存 无需人工干预 吗 使用 SharedPreferences
  • Android/ListView:加载数据后选择第一项

    EDIT我必须告诉你 我的 ListView 是由 AsyncTask 填充的 当我在 onPostExecute 方法中执行以下操作时 下面的代码工作正常 synchronized mListView if mFeeds null mFe
  • 如何将新数据追加到已有的配置单元表

    如何将记录追加到现有的分区 Hive 表中 例如 我有一个名为 ip country 的现有外部表 数据集是 testdata1 如果数据集增长 比如我第二天的数据集是 testdata1 和 testdata2 那么如何将新数据 即 te
  • 从文件异步加载图像

    我在本地存储中有一个相对图像 我想在不干扰 UI 线程的情况下将其显示给用户 我目前正在使用 UIImage alloc initWithContentsOfFile path 加载图像 任何建议 帮助请 如果您想要做的只是保持 UI 线程
  • 使预处理器跟踪定义的来源

    在一大堆复杂的源代码中 不是这里发明的 是由 Elbonian 代码奴隶拼凑在一起的 可能会出现这样的情况 几位代码在其路径中拥有一些公共头文件的本地副本 由于构建和使用的层数较多保护宏 https gcc gnu org onlinedo
  • PHP。为什么日期对象的月份差异在 12 个月后重置为 0?

    今天是 2015 年 7 月 8 日 当我运行以下命令时它返回0 如果不返回12 日期是12个月前 同样如果 date 2014 06 03 它返回1 难道不是吗13 过去 12 个月内的所有日期均已正确计算 date 2014 07 03
  • wwwroot 之外的 Elmah logPath

    我们正在尝试部署我们的项目 但我们无法让 elmah 在 wwwroot 之外创建 xml 日志 它当前正在记录到 inetpub site wwwroot App Data 因为这是唯一可行的路径 我们希望将其记录到我们的 inetpub
  • Java:使用引用游标作为 OUT 调用存储过程时结果集为空

    我试图从 Java 调用存储过程 但返回的结果始终是false 实际上 它必须返回 100 条记录 连接建立良好 我有一个存储过程 PROCEDURE get records grp1 IN a name TYPE DEFAULT NULL
  • 使用 PHP 将带有换行符的字符串分解为 HTML 段落

    我从 MySQL 数据库获取文本 该文本被分成行 段落 它存储在变量中 post data content 如何使其打印时带有换行符 我当前使用的代码 post data content explode n post data conten