StackOverflow sẽ không cho phép tôi nhận xét về câu trả lời của hesselbom (không đủ danh tiếng), vì vậy tôi đang thêm ...
$array = preg_split('/\s*\R\s*/', trim($text), NULL, PREG_SPLIT_NO_EMPTY);
Điều này hoạt động tốt nhất đối với tôi vì nó cũng tự động loại bỏ khoảng trắng hàng đầu (giây \ s *) và dấu (đầu tiên \ s *) và bỏ qua các dòng trống (cờ PREGinksLIT_NO_EMPTY).
- = TÙY CHỌN = -
Nếu bạn muốn giữ khoảng trắng hàng đầu, chỉ cần thoát khỏi \ s * thứ hai và biến nó thành rtrim () thay vào đó ...
$array = preg_split('/\s*\R/', rtrim($text), NULL, PREG_SPLIT_NO_EMPTY);
Nếu bạn cần giữ các dòng trống, hãy loại bỏ NULL (nó chỉ là một trình giữ chỗ) và cờ PREGinksLIT_NO_EMPTY, như vậy ...
$array = preg_split('/\s*\R\s*/', trim($text));
Hoặc giữ cả khoảng trắng hàng đầu và dòng trống ...
$array = preg_split('/\s*\R/', rtrim($text));
Tôi không thấy bất kỳ lý do nào khiến bạn muốn giữ khoảng trắng theo dõi, vì vậy tôi khuyên bạn nên để lại \ s * đầu tiên trong đó. Nhưng, nếu tất cả những gì bạn muốn là phân chia theo dòng mới (như tiêu đề gợi ý), thì điều này thật đơn giản (như được đề cập bởi Jan Goyvaerts) ...
$array = preg_split('/\R/', $text);