【问题标题】:Automatic newlines and formatting for blogging software博客软件的自动换行符和格式化
【发布时间】:2008-09-23 21:14:10
【问题描述】:

我正在使用自己的 PHP 博客引擎和 MYSQL 后端数据库编写。我的问题是:您将如何让用户 cmets 和博客文章在适当的地方包含换行符?

例如,如果用户点击消息/cmets 框中的返回键,这将如何转换为在查看评论时显示在浏览器中的新行?

【问题讨论】:

    标签: php newline blogs


    【解决方案1】:

    PHP 有一个函数:nl2br,它将新行转换为<br />

    www.php.net/nl2br

    【讨论】:

    • 在 PHP 开发人员无故更改次要补丁版本中的语义后,我学会了不信任这样的函数。
    • 您有具体情况吗?我看到这个函数在 5.3.0 中更改为添加一个“is xhtml”布尔参数,在 4.0.5 中它通过在标签中添加一个结束斜杠使其符合 XHMTL。还是您指的是特定功能?
    • 我说的是 4.0.5 的变化。这是完全没有必要的,完全不适合小补丁版本,并且破坏了代码。他们在想什么?就是那种牛仔的态度让我很庆幸不用再写PHP了。
    • 嗯... 4.0.5 是很久以前的事了。他们现在(在我看来)似乎有一个更加合理的开发过程。通常,如果他们现在做类似的事情,他们会添加一个启用它的选项(因此是 xhtml 参数)。
    • 4.0.5 是很久以前的事了,但还有其他类似的东西。我得到了人们刚刚记住的所有问题,PHP 是一个社区产品。报告错误,发布到邮件列表。你有权力! (我知道这听起来像是广告,但这是真的。)
    【解决方案2】:

    \n\n 替换为</p><p>,然后将\n 替换为<br>

    PS:海盗日是上周 :)。

    【讨论】:

    • 如果这样做,请确保用

      包装整个输出!
    • 这个建议不是假设您总是以

      开头内容吗?

    • 是的,但考虑到他说的是用户cmets和博客文章,这不是一个不合理的假设。
    【解决方案3】:

    nl2br() (http://php.net/nl2br) 非常好,但是 Wordpress Guy (Matt Mullenweg) 有一个非常好的功能,它更先进,因为它将双换行符转换为段落(在语义上更好)。你可以在 Wordpress 源代码或这里找到它:http://ma.tt/scripts/autop/

    【讨论】:

      【解决方案4】:

      评论编辑器的用途也很重要。如果您使用标准文本框,那么可以,nl2br 就是您要找的。如果您更高级一些,例如使用像 tinyMCE 这样的所见即所得编辑器,那么它的配置可以为您处理。

      【讨论】:

        【解决方案5】:

        如果您碰巧需要更多格式选项(段落之外),请使用 Text_WikiPHP Markdown 之类的选项。

        优点是:

        • 无需允许 HTML 并处理所有过滤(这很好:-))
        • 清晰/熟悉的数据格式化指南
        • 在生成 HTML 时具有很大的灵活性(最终用于显示)

        缺点:

        • 没有 HTML(祝福和诅咒 ;-))
        • 人们可能不熟悉语法

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-12
          • 1970-01-01
          • 2012-12-12
          相关资源
          最近更新 更多