PHP 格式化输出纯文本段落添加段落标签

发布于 2018-07-11 19:18:58 字数 1260 浏览 3588 评论 0

今天使用 TinyMCE 编辑器,保存数据的时候,发现他不会自动添加 P 标签,导致所有段落都是一行,也就是没有段落,但是查看源代码的时候是有类似于 TXT 文档的换行段落,对于多个空格和换行,浏览器只会把他当作一个空格处理,如果需要有段落,必须添加 P 标签。

在 HTML 规范里,与段落有关的标签之一是 P 标签,记作 <p>段落文字</p> 。由此分析,给文本区里的文字的每一行头尾加入 P 标签即可达到以 HTML 的方式格式化其文本的目的。

PHP 接受文本区内容的方式是把文本区的全部字符当作一个单一的 string 变量来实现,因此行的概念并不直接,好在来自文本区的字符包含有回车符,一个回车符代表一行的结束,我们可以通过整个字符串的回车符识别该文本所包含的行,从而给各行加入 P 标签的起止符以便将段落分开。

假设文本区的 name 参数命名为为 design_str,提交给 PHP 程序后将被视作变量 $design_str 。我们先给文本的开始处加入<p> 标签,再通过 PHP 内置函数 str_replace 将换行符 \r\n 转换为 </p><p>,接着在文本的末尾加入 </p> 标签,最后,整理一下整个字符 串,使之按一组一组 P 标签的形式独立成行以美化代码,更重要的是提高代码的可读性:

$str=trim($design_str); // 取得字串同时去掉头尾空格和空回车
//$str=str_replace("<br>","",$str); // 去掉<br>标签
$str="<p>".trim($str); // 在文本头加入<p>
$str=str_replace("\r\n","</p>\n<p>",$str); // 用p标签取代换行符
$str.="</p>\n"; // 文本尾加入</p>
$str=str_replace("<p></p>","",$str); // 去除空段落
$str=str_replace("\n","",$str); // 去掉空行并连成一行
$str=str_replace("</p>","</p>\n",$str); //整理html代码

这样完整的 HTML 代码已经得到,它把用户在文本区里输入的各行文字都冠以标准的段落标签并分好了行,只要把它提交给相应的处理程序,它就能以规范的正文 文本方式输出在浏览器中。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

醉城メ夜风

文章 0 评论 0

远昼

文章 0 评论 0

平生欢

文章 0 评论 0

微凉

文章 0 评论 0

Honwey

文章 0 评论 0

qq_ikhFfg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文