问题描述
如第一个答案的评论中所述,最佳做法是使用代表当前系统的 EOL( 行尾)的 PHP 常量 PHP_EOL。 __
$skuList = explode(PHP_EOL, $_POST['skuList']);
PHP 提供了许多其他非常有用的常量,您可以使用这些常量使您的代码独立于系统,请参阅此链接以查找有用且与系统无关的目录常量。
这些常量使您的页面系统独立,但是当您将常量与存储在另一个系统上的数据一起使用时,您可能会在从一个系统移动到另一个系统时遇到问题。新系统的常数可能与以前的系统不同,存储的数据可能不再起作用。因此,在存储数据之前完全解析您的数据以删除任何与系统相关的部分。
Andreas 的评论让我意识到,我在这里提出的“最佳实践”解决方案不适用于所描述的用例:服务器的 EOL (PHP) 与浏览器(任何操作系统)正在使用的 EOL 没有任何关系,但那(浏览器)是字符串的来源。
$skuList = preg_split('/\r\n|\r|\n/', $_POST['skuList']);
解决方法
很简单,对吧?好吧,这不起作用:-\
$skuList = explode('\n\r',$_POST['skuList']);