用新行分解 PHP 字符串

问题描述

如第一个答案的评论中所述,最佳做法是使用代表当前系统的 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']);