PHP分解\r和\n个字符

PHP分解\r和\n个字符,php,explode,Php,Explode,我有一个excel模板,用于填写数据。我将其导出为CSV。其中一个字段包含新行字符。在mac上完成时,它会返回一个\r或\n 当我尝试按如下方式分解该文本时: $skillsets = explode("\r", $j['skillsets']); // works with CSV exported from MAC $skillsets = explode("\n", $j['skillsets']); // works with CSV exported from WIN 是否有任何方法

我有一个excel模板,用于填写数据。我将其导出为CSV。其中一个字段包含新行字符。在mac上完成时,它会返回一个
\r
\n

当我尝试按如下方式分解该文本时:

$skillsets = explode("\r", $j['skillsets']); // works with CSV exported from MAC
$skillsets = explode("\n", $j['skillsets']); // works with CSV exported from WIN

是否有任何方法可以检查它们中的任何一个,并确保我的分解对
\r
\n
都有效?

最简单的方法是使用
preg\u split

$skillsets = preg_split('/(\r|\n)/', $j['skillsets']);

不需要使用正则表达式,但这是一个非常简单的情况,您只需更改一行代码。

使用preg\u split或preg\u match,这样您就可以传入多个Delimeter为什么不使用str\u replace将
\r\n
\n\r
的任何组合转换为直接的
\n
对于csv,有一个特定的函数用于操纵您可能还想签入的日期,以及自动检测行尾的相应设置。@MarkBaker Comment是最佳解决方案。我很乐意写下来作为回答。