2010-08-20 25 views
12

Tôi đã có cơ sở dữ liệu MySQL mà từ đó tôi trích xuất một chuỗi là danh sách các từ được phân tách bằng dòng mới. Bây giờ tôi chỉ muốn xóa dòng mới . tôi đã cố gắng sử dụng preg_replace nhưXóa đường nhỏ cuối

$string = preg_replace('/\n/','',$string); 

Nó hoạt động nhưng tất cả các dòng mới trong chuỗi được loại bỏ :( Xin giúp

Cảm ơn tất cả mọi người

Trả lời

27

Bạn cần phải thêm vào cuối dòng neo.:

$string = preg_replace('/\n$/','',$string); 

của nó tốt hơn để tránh regex để thay thế đơn giản như vậy. Điều này có thể dễ dàng được thực hiện bằng rtrim như:

$string = rtrim($string); 

rtrim mà không tranh luận thứ 2 sẽ loại bỏ các đuôi whitespace char trong đó bao gồm:

  • newline
  • gian
  • dọc tab
  • tab ngang
  • phí vận chuyển
+0

+1 để chỉ ra chức năng tiện ích tuyệt vời này. – Scott

+0

Điều này có xóa tất cả khoảng trắng hoặc chỉ tồn tại không? – cli

7

Không sử dụng cụm từ thông dụng cho một nhiệm vụ tầm thường như vậy. Bạn có thể sử dụng số rtrim() của PHP (có thể là "\n" làm thông số thứ hai) hoặc substr() (như substr($string, 0, -1)) hoặc RTRIM() của MYSQL.

+3

+1 để nhận giá trị được cắt từ db – Gordon

+0

Tôi thích câu trả lời này tốt hơn nhiều –

Các vấn đề liên quan