简单,是吧?嗯,这是行不通的:-\
$skuList = explode('\n\r', $_POST['skuList']);
简单,是吧?嗯,这是行不通的:-\
$skuList = explode('\n\r', $_POST['skuList']);
当前回答
试试这个:
explode(PHP_EOF, $lines);
其他回答
这里有很多东西:
您需要使用双引号,而不是单引号,否则转义字符将不会被转义。 正常的序列是\r\n,而不是\n\r。 根据来源的不同,你可能只得到不带\r的\n(甚至在不寻常的情况下,可能只有\r)。
考虑到最后一点,您可能会发现使用所有可能的变体的preg_split()将为您提供比explosion()更可靠的数据分割方式。但是,您也可以只使用\n来使用explosion(),然后使用trim()来删除剩下的\r字符。
这个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
)
对于一条新线来说,这只是
$list = explode("\n", $text);
对于一个新的行和回车(就像在Windows文件中一样),它就像你发布的那样。你的skuList是一个文本区域吗?
首先,我认为通常是\r\n,其次,这些在所有系统中都不一样。这只对窗口有效。试图弄清楚如何替换新行有点烦人,因为不同的系统对它们的处理不同(见这里)。你可能会有更好的运气只\n。
你试过用双引号吗?