文字列を行ごとに分割したいのですが、使用されているすべての主要な改行文字に基づいて文字列を作成したいと思います。
そして、各行を含む配列を返します。
正規表現と preg_split
代わりに:
$lines = preg_split('/\n|\r\n?/', $str);
正規表現\n|\r\n?
は、LFまたは、LFが後に続くCRのいずれかに一致します。
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);