StackOverflow не позволит мне прокомментировать ответ hesselbom (а не достаточно репутации), поэтому я добавляю мои собственные ...
$array = preg_split('/\s*\R\s*/', trim($text), NULL, PREG_SPLIT_NO_EMPTY);
Это работает лучше для меня, потому что он также устраняет ведущий (второй \ с *) и задней (первый \ с *) пробелы автоматически, а также пропускает пустые строки (флаг PREG_SPLIT_NO_EMPTY).
- = OPTIONS = -
Если вы хотите сохранить ведущие пробелы, просто избавиться от второго \ S * и сделать его RTRIM() вместо того, чтобы ...
$array = preg_split('/\s*\R/', rtrim($text), NULL, PREG_SPLIT_NO_EMPTY);
Если вы нужно держать пустые строки, избавиться от NULL (это только заполнитель) и PREG_SPLIT_NO_EMPTY флаг, как так ...
$array = preg_split('/\s*\R\s*/', trim($text));
Или держать обе ведущие пробелы и пустые строки ...
$array = preg_split('/\s*\R/', rtrim($text));
Я не вижу причин, по которым вам когда-либо хотелось бы сохранить конечные пробелы, поэтому я предлагаю оставить там первый \ s *. Но, если все, что вы хотите, чтобы разделить на новой линии (как видно из названия), то эта простая (как уже упоминалось Ян Goyvaerts) ...
$array = preg_split('/\R/', $text);
Я не знаю PHP, но там, как правило, функция называется «сплит» для строк. Он работает следующим образом: array = split (string, "\ n") –
Вы должны сначала нормализовать новые строки. Метод 's ($ yourString) -> normalizeLineEndings()' доступен с https://github.com/delight-im/PHP-Str (библиотека под лицензией MIT), в которой есть много других полезных помощников строк. Вы можете взглянуть на исходный код. – caw