【问题标题】:Limit preserved linebreaks for textarea限制为 textarea 保留换行符
【发布时间】:2015-12-21 02:16:18
【问题描述】:

好的,所以我在上传到我的数据库时保留了换行符,并且在网页上显示时可以看到它们,但是我有一个问题。我的网站是一个论坛,我不希望用户的主题在文本之间有过多的换行符...例如:

line 1
<1 blank line>
<2 blank lines>
<3 blank lines>
<4 blank lines>
line 2
<1 blank line>
<2 blank lines>
line 3

这将使我的页面比它需要的长得多,并且只会导致页面不愉快。无论如何我可以使它在文本行之间只能添加1个新行,例如

line 1
<1 blank line>
line 2
<1 blank line>
line 3

提前感谢您的帮助!

【问题讨论】:

    标签: php mysql laravel eloquent textarea


    【解决方案1】:

    我们可以使用多种方法来做到这一点:

    使用正则表达式:

    $str = preg_replace('/^[ \t]*[\r\n]+/m', '', $content);
    echo (nl2br($str));
    

    自定义函数:

    echo removeBlankLines($content);
    function removeBlankLines($content = null)
    {
       $lines = explode("\n", $content);
       $temp  = array();
       foreach ($lines as $line) {
           $last = end($temp);
           if($line == '' && $last == $line) continue;
    
           $temp[]   = $line;
           $result[] = $line ? $line : "\n";
       }
    
       return ($result) ? (nl2br(join('', $result))) : false;
    }
    

    输入:

    $content = 'line 1
    
    
    
    line 2
    
    
    
    line 3';
    

    输出:

    line 1
    line 2
    line 3
    

    【讨论】:

    • 谢谢!这很棒,解决了问题!
    【解决方案2】:

    也许这就是您要查找的内容(我假设您论坛上的帖子采用 HTML 格式,但如果您在 HTML 格式之前有文本,您可以对 \n 应用相同的逻辑 - 请参阅 MBaas's answer):

    How to Regex-replace multiple <br /> tags with one <br /> tag?

    【讨论】:

      【解决方案3】:

      假设您可以在“原始数据”进入数据库之前访问它,您可以对连续的换行符进行字符串搜索并用一个换行符替换 - 可能像 \n{2,} 这样的正则表达式就可以完成这项工作。

      在 PHP 中,它类似于 $result = preg_replace('/\n{2,}/', '\n', $subject);

      【讨论】:

      • 我正在从联系表中获取数据。我尝试了这个并使用“
        ”和“
        ”而不是“/n”进行了尝试,但它仍然没有改变任何东西
      • 那么你能对你的变量做一个var_dump 来检查它如何处理换行符吗?
      • 从 textarea 中的“sdfgsdfg”、2 个换行符(只需按 Enter)和“sdfgsdfsdfg”到 var_dump 的字符串(25)“sdfgsdfg sdfgsdfsdfg”
      • 你能请。做var_dump(nl2br(:::))
      • 好的,非常感谢您提供的帮助!剩下的不用担心......我会弄清楚的
      猜你喜欢
      • 2013-04-16
      • 2017-05-17
      • 2015-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-09
      相关资源
      最近更新 更多