字符串输入来自文本区域,用户应该在新行上输入每个项目。
处理表单时,很容易将文本区域输入分解为单个项目的数组,如下所示:
$arr = explode("\n", $textareaInput);
它工作正常,但我担心它在不同系统中无法正常工作(我目前只能在 Windows 中进行测试)。我知道换行符表示为\r\n
或只是\r
跨不同平台。上面这行代码在 Linux、Solaris、BSD 或其他操作系统下也能正常工作吗?
您可以使用preg_split http://php.net/manual/en/function.preg-split.php要做到这一点。
$arr = preg_split('/[\r\n]+/', $textareaInput);
它将其拆分为以下任意组合\r
or \n
人物。您还可以使用\s
包括任何空白字符。
Edit
我突然想到,虽然前面的代码工作正常,但它也删除了空行。如果您想保留空行,您可能想尝试以下操作:
$arr = preg_split('/(\r\n|[\r\n])/', $textareaInput);
它基本上是从寻找 Windows 版本开始的\r\n
,如果失败,它会查找旧的 Mac 版本\r
或 Unix 版本\n
.
例如:
<?php
$text = "Windows\r\n\r\nMac\r\rUnix\n\nDone!";
$arr = preg_split('/(\r\n|[\r\n])/', $text);
print_r($arr);
?>
Prints:
Array
(
[0] => Windows
[1] =>
[2] => Mac
[3] =>
[4] => Unix
[5] =>
[6] => Done!
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)