【问题标题】:How to show just one newline using nl2br?如何使用 nl2br 只显示一个换行符?
【发布时间】:2010-11-26 02:46:57
【问题描述】:

我正在使用nl2br()\n 字符转换为<br /> 标记,但我一次不想多个<br /> 标记。例如,Hello \n\n\n\n Everybody 应变为 Hello <br /> Everybody

我该怎么做?

【问题讨论】:

    标签: php newline nl2br


    【解决方案1】:

    最直接的方法可能是首先使用简单的正则表达式将多个换行符替换为一个:

    nl2br(preg_replace("/\n+/", "\n", $input));
    

    【讨论】:

    • 感谢您的解决方案。我还有一个问题。我怎样才能允许 1 和 2 换行符?
    • 如果要保留最多两个\n 字符,只需将其中两个放在正则表达式中并替换:preg_replace("/\n\n+/", "\n\n", $input)
    【解决方案2】:

    如果你有 php 5.2.4+,你可以使用 preg_replace 和垂直空白字符类型\v

    $str = preg_replace('/\v+/','<br>', $str);
    

    【讨论】:

      【解决方案3】:

      我会先尝试使用 preg_replace() 将重复的换行符替换为单个换行符,然后使用 nl2br 转换为 HTML
      标签。 nl2br(preg_replace('/\n+/', '\n', $the_string)) 应该可以解决问题(未经测试)。

      【讨论】:

        猜你喜欢
        • 2014-12-31
        • 2023-04-08
        • 1970-01-01
        • 2011-03-21
        • 1970-01-01
        • 2013-07-12
        • 1970-01-01
        • 2012-02-20
        • 1970-01-01
        相关资源
        最近更新 更多