PHP分解\r和\n个字符
我有一个excel模板,用于填写数据。我将其导出为CSV。其中一个字段包含新行字符。在mac上完成时,它会返回一个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 是否有任何方法
\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是最佳解决方案。我很乐意写下来作为回答。