Hướng dẫn php replace multiple line breaks with one - php thay thế nhiều ngắt dòng bằng một

Về lý thuyết, biểu thức thường xuyên của bạn hoạt động, nhưng vấn đề là không phải tất cả hệ điều hành và trình duyệt chỉ gửi \ n ở cuối chuỗi. Nhiều người cũng sẽ gửi một \ r.

Try:

Tôi đã đơn giản hóa cái này:

preg_replace("/(\r?\n){2,}/", "\n\n", $text);

Và để giải quyết vấn đề chỉ gửi \ r:

preg_replace("/[\r\n]{2,}/", "\n\n", $text);

Dựa trên bản cập nhật của bạn:

// Replace multiple (one ore more) line breaks with a single one.
$text = preg_replace("/[\r\n]+/", "\n", $text);

$text = wordwrap($text,120, '
', true); $text = nl2br($text);

Câu trả lời được đề xuất

@garyjohnson

Đã thử mọi giải pháp tôi đã đi qua và vẫn không nhận được bất kỳ kết quả nào. Tôi có một hộp bình luận và tôi đang cố gắng loại bỏ tất cả các dòng mới lặp lại hoặc /r /n khỏi đầu vào.

Bạn cần thêm hàm Trim () để làm điều đó.Trim() function to do that.

Hãy thử điều này (tôi…

Nhảy để đăng

Hãy thử sử dụng một biểu thức chính quy để thay thế nhiều phiên bản CRLF và Newline bằng một phiên bản duy nhất. Bạn có thể cũng muốn xem xét bao gồm các thẻ Break:

// Squeeze break tags
$comment = preg_replace('/()+/', '
', $comment); // Squeeze CRLF $comment = preg_replace('/(\r\n)+/', '\r\n', $comment); // Squeeze NL …

Nhảy để đăng

Hãy thử sử dụng một biểu thức chính quy để thay thế nhiều phiên bản CRLF và Newline bằng một phiên bản duy nhất. Bạn có thể cũng muốn xem xét bao gồm các thẻ Break:

$comment = preg_replace("/(\r\n)+/", "\r\n", $comment);

Nhảy để đăng

Hãy thử sử dụng một biểu thức chính quy để thay thế nhiều phiên bản CRLF và Newline bằng một phiên bản duy nhất. Bạn có thể cũng muốn xem xét bao gồm các thẻ Break:

Hướng dẫn php replace multiple line breaks with one - php thay thế nhiều ngắt dòng bằng một

// Squeeze break tags
$comment = preg_replace('/()+/', '
', $comment); // Squeeze CRLF $comment = preg_replace('/(\r\n)+/', '\r\n', $comment); // Squeeze NL …

9 năm trước

@garyjohnson

Đã thử mọi giải pháp tôi đã đi qua và vẫn không nhận được bất kỳ kết quả nào. Tôi có một hộp bình luận và tôi đang cố gắng loại bỏ tất cả các dòng mới lặp lại hoặc /r /n khỏi đầu vào.

Bạn cần thêm hàm Trim () để làm điều đó.Trim() function to do that.

Hãy thử điều này (tôi…

$comment = trim(preg_replace('/[\n\r]/', ' ', $comment));

Hướng dẫn php replace multiple line breaks with one - php thay thế nhiều ngắt dòng bằng một

Nhảy để đăng 1,790 Code Sniper Administrator Featured Poster

9 năm trước

Hãy thử sử dụng một biểu thức chính quy để thay thế nhiều phiên bản CRLF và Newline bằng một phiên bản duy nhất. Bạn có thể cũng muốn xem xét bao gồm các thẻ Break:

// Squeeze break tags
$comment = preg_replace('/()+/', '
', $comment); // Squeeze CRLF $comment = preg_replace('/(\r\n)+/', '\r\n', $comment); // Squeeze NL $comment = preg_replace('/(\n)+/', '\n', $comment);

Hướng dẫn php replace multiple line breaks with one - php thay thế nhiều ngắt dòng bằng một

9 năm trước

// Squeeze break tags
$comment = preg_replace('/()+/', '
', $comment); // Squeeze CRLF $comment = preg_replace('/(\r\n)+/', '\r\n', $comment); // Squeeze NL …

Hướng dẫn php replace multiple line breaks with one - php thay thế nhiều ngắt dòng bằng một

Nhảy để đăng 1,790 Code Sniper Administrator Featured Poster

9 năm trước

Hãy thử sử dụng một biểu thức chính quy để thay thế nhiều phiên bản CRLF và Newline bằng một phiên bản duy nhất. Bạn có thể cũng muốn xem xét bao gồm các thẻ Break:

$comment = preg_replace("/(\r\n)+/", "\r\n", $comment);

Hướng dẫn php replace multiple line breaks with one - php thay thế nhiều ngắt dòng bằng một

9 năm trước

// Squeeze break tags
$comment = preg_replace('/()+/', '
', $comment); // Squeeze CRLF $comment = preg_replace('/(\r\n)+/', '\r\n', $comment); // Squeeze NL …

Hướng dẫn php replace multiple line breaks with one - php thay thế nhiều ngắt dòng bằng một

Nhảy để đăng 1,790 Code Sniper Administrator Featured Poster

9 năm trước

Hãy thử sử dụng một biểu thức chính quy để thay thế nhiều phiên bản CRLF và Newline bằng một phiên bản duy nhất. Bạn có thể cũng muốn xem xét bao gồm các thẻ Break:


// Squeeze break tags
$comment = preg_replace('/()+/', '
', $comment); // Squeeze CRLF $comment = preg_replace('/(\r\n)+/', '\r\n', $comment); // Squeeze NL …

Hướng dẫn php replace multiple line breaks with one - php thay thế nhiều ngắt dòng bằng một

9 năm trước

Xấu của tôi, tôi nên sử dụng các chuỗi trích dẫn kép:

";
$comment = preg_replace("/(\r\n)+/", "\r\n", $comment);
echo $comment;
?>

Tất cả 9 câu trả lời

Hướng dẫn php replace multiple line breaks with one - php thay thế nhiều ngắt dòng bằng một

// Squeeze break tags
$comment = preg_replace('/()+/', '
', $comment); // Squeeze CRLF $comment = preg_replace('/(\r\n)+/', '\r\n', $comment); // Squeeze NL …

9 năm trước

@garyjohnson

Xấu của tôi, tôi nên sử dụng các chuỗi trích dẫn kép:

preg_replace("/[\r\n]{2,}/", "\n\n", $text);
0

Tất cả 9 câu trả lời

Lastmitch

preg_replace("/[\r\n]{2,}/", "\n\n", $text);
1

Hãy thử điều này (tôi chưa kiểm tra nó):

preg_replace("/[\r\n]{2,}/", "\n\n", $text);
2

Deceptikon1.790 Mã quản trị viên bắn tỉa

Được chỉnh sửa 9 năm trước bởi LastMitch vì: Grammer

Hướng dẫn php replace multiple line breaks with one - php thay thế nhiều ngắt dòng bằng một

9 năm trước

Cảm ơn tất cả các phản hồi và sự giúp đỡ!Tôi đã gây rối với nó trong một thời gian và tôi đã làm việc này

preg_replace("/[\r\n]{2,}/", "\n\n", $text);
3

Cảm ơn đã giúp đỡ!

Trả lời chủ đề này

Là một phần của cộng đồng Daniweb

Chúng tôi là một cộng đồng thân thiện, tập trung vào ngành của các nhà phát triển, các chuyên gia CNTT, nhà tiếp thị kỹ thuật số và những người đam mê công nghệ gặp gỡ, học tập và chia sẻ kiến thức.