php - 限制文本区域的保留换行符

标签 php mysql laravel eloquent textarea

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

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

提前感谢您的帮助!

最佳答案

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

使用正则表达式:

$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

关于php - 限制文本区域的保留换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32745053/

相关文章:

php - 取消设置 session 变量时出现问题

javascript - 如何在 jquery 操作后将 select 元素值设置为默认值?

php - FFMPEG - 启用声音时文件大小为零

php - Guzzle:处理 400 个错误请求

php - 用户 'sol0nig_User' @'localhost' 的访问被拒绝(使用密码 : YES)

php - 从 While 循环填充 PHP 数组

php - fetch() 方法出错

mysql - 在数据库中搜索多个相同的条目

php - Laravel 通知没有任何错误地广播?

php - 如何测试 Laravel 5.4 中的 "creating"事件是否调用了 Eloquent 模型方法?