Насколько я знаю, лучший способ разбить строку на новые строки - это preg_split
и \R
:
preg_split('~\R~', $str);
\R
соответствует любой последовательности новой строки Unicode, то есть не только LF
, CR
, CRLF
, но и более экзотическим, таким как VT
, FF
, NEL
, LS
и PS
.
Если такое поведение нежелательно (почему?), Вы можете указать параметр BSR_ANYCRLF
:
preg_split('~(*BSR_ANYCRLF)\R~', $str);
Это будет соответствовать только "классическим" последовательностям новой строки.