按换行符分解 PHP 字符串
在 PHP 中,explode() 函数用于根据指定的分隔符。但是,在处理包含换行符的字符串时,使用简单的“n”分隔符可能并不总是按预期工作。
您的代码 $skuList =explode('nr', $_POST['skuList']) ;不起作用,因为它使用“nr”分隔符,它代表 Windows 和 Mac 换行符。但是,在 Linux 或 Unix 等系统上,仅使用“n”。
最佳实践:
按新行分解字符串的最佳实践是使用PHP 常量 PHP_EOL。该常量代表当前系统的行结束符,确保代码与系统无关。
$skuList = explode(PHP_EOL, $_POST['skuList']);
警告:
虽然使用 PHP_EOL 可以促进系统独立,但请注意在系统之间移动数据时应执行此操作。该常量的值可能因系统而异,从而可能导致数据不准确。因此,建议在存储数据之前彻底解析数据,以删除任何与系统相关的元素。
更新:
但是,在这种特定情况下,正如所指出的@Andreas,这个解决方案可能不合适,因为 $_POST['skuList'] 中的新行字符来自浏览器,而不是服务器。因此,@Alin_Purcaru 推荐了更合适的解决方案:
$skuList = preg_split('/\r\n|\r|\n/', $_POST['skuList']);
此正则表达式根据不同操作系统使用的任何常见换行符序列来拆分字符串。
以上是如何通过换行符可靠地分解 PHP 字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!