Я хочу разделить строку по строкам, но я хочу, чтобы она была основана на всех основных используемых символах разрыва строки:
И верните массив, содержащий каждую строку.
Вместо этого вы можете использовать регулярное выражение и preg_split
:
$lines = preg_split('/\n|\r\n?/', $str);
Регулярное выражение \n|\r\n?
соответствует либо LF, либо CR, за которым может следовать LF.
preg_split('/\R/', $str);
В PHP preg_split (), preg_match и preg_replace \R
соответствует всем разрывам строк любого типа.
По умолчанию последовательность \ R в шаблоне соответствует любой последовательности строк Unicode, независимо от того, что было выбрано в качестве последовательности окончания строки. Если вы укажете
–enable-BSR-anycrlf
по умолчанию изменяется так, что \ R соответствует только CR, LF или CRLF. Что бы вы ни выбрали, когда PCRE был создан, можно переопределить при вызове функций библиотеки.
Вы можете заменить все символы разрыва символов уникальным заполнителем, а затем взорвать строку в массиве, сделав что-то вроде этого:
$my_string = preg_replace(array('/\n/', '/\r/'), '#PH#', $my_string); $my_array = explode('#PH', $my_string);