2010-01-02 34 views

Trả lời

35
$string = str_replace("\n", "", $string); 
$string = str_replace("\r", "", $string); 
+1

nó đã giúp tôi rất nhiều – Rinzler

66
$string = str_replace(PHP_EOL, '', $string); 

hoặc

$string = str_replace(array("\n","\r"), '', $string); 
+3

1 vì PHP_EOL bắt newlines rằng \ n, \ r \ n \ r bỏ lỡ. – Mark

+3

Không làm việc cho tôi. Đầu tiên, PHP_EOL không được công nhận. Thứ hai, nếu bạn lần đầu tiên xóa \ n và sau đó bạn đang tìm kiếm \ r \ n, bạn sẽ không tìm thấy chúng, vì \ n đã bị xóa. – MilanG

+0

@MilanG Bạn có thể xem tại đây cho tất cả các hằng số php được xác định trước: http://php.net/manual/en/reserved.constants.php Bạn sẽ thấy có PHP_EOL. Bạn có lẽ đúng về câu lệnh thứ hai của bạn, tôi sẽ sửa lỗi này. Cảm ơn – AntonioCS

11

Để loại bỏ một vài dòng mới nó được đề nghị sử dụng một biểu thức chính quy:

$my_string = trim(preg_replace('/\s\s+/', ' ', $my_string)); 
+0

+1 để thực sự sử dụng regex như OP yêu cầu – rorypicko

+0

biểu tượng '+' có nghĩa là 1 hoặc nhiều hơn, bạn không cần '\ s' đầu tiên. –

+0

Nhóm regex không bao gồm những thứ như tab và không gian chung, trong trường hợp này, câu trả lời này quá đáng tham lam? – Kzqai

1

Hãy thử này ra của nó làm việc cho tôi

Đầu tiên xóa n từ chuỗi (sử dụng dấu gạch chéo kép trước n),

Sau đó tháo r từ chuỗi như n

Mã sản phẩm:

$string=str_replace("\\n",$string); 
$string=str_replace("\\r",$string); 
6

Tốt hơn để sử dụng,

$string = str_replace(array("\n","\r\n","\r"), '', $string).

Vì một số ngắt dòng vẫn giữ nguyên do nó là từ đầu vào văn bản.

3

Something một chút chức năng hơn (dễ dàng để sử dụng bất cứ nơi nào):

function strip_carriage_returns($string) 
{ 
    return str_replace(array("\n\r", "\n", "\r"), '', $string); 
} 
Các vấn đề liên quan