简单,是吧?嗯,这是行不通的:-\

$skuList = explode('\n\r', $_POST['skuList']);

当前回答

试试这个:

explode(PHP_EOF, $lines);

其他回答

这个PHP函数用换行符拆分字符串 注意:Windows中的新行是\r\n, Linux和Unix中的新行是\n 这个函数将所有新行更改为Linux模式,然后将其拆分。注意,空行将被忽略

function splitNewLine($text) {
    $code=preg_replace('/\n$/','',preg_replace('/^\n/','',preg_replace('/[\r\n]+/',"\n",$text)));
    return explode("\n",$code);
}

例子

$a="\r\n\r\n\n\n\r\rsalam\r\nman khobam\rto chi\n\rche khabar\n\r\n\n\r\r\n\nbashe baba raftam\r\n\r\n\r\n\r\n";
print_r( splitNewLine($a) );

输出

Array
(
    [0] => salam
    [1] => man khobam
    [2] => to chi
    [3] => che khabar
    [4] => bashe baba raftam
)

你试过用双引号吗?

首先,我认为通常是\r\n,其次,这些在所有系统中都不一样。这只对窗口有效。试图弄清楚如何替换新行有点烦人,因为不同的系统对它们的处理不同(见这里)。你可能会有更好的运气只\n。

把\n放在双引号中:

explode(“\n”, $_POST['skuList']);

在单引号中,如果我没有记错的话,它被分别视为\和n。

以下是对我有效的方法。在PHP 5.6和PHP 7.0中测试:

    $skuList = str_replace("\\r\\n", "\n", $_POST['skuList']);
    $skuList = str_replace("\\n\\r", "\n", $skuList);

    $skuList = preg_split("/\n/", $skuList);
    print_r($skuList);