字符串输入来自textarea,用户应该在新行上输入每个项目.
处理表单时,很容易将textarea输入分解为单个项目数组,如下所示:
$arr = explode("\n", $textareaInput);
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我担心它在不同的系统中无法正常工作(我目前只能在Windows中测试).我知道新行在不同的平台上表示为\ r \n或者只是\ r \n.上述代码行是否也能在Linux,Solaris,BSD或其他操作系统下正常运行?
你可以preg_split用来做那件事.
$arr = preg_split('/[\r\n]+/', $textareaInput);
Run Code Online (Sandbox Code Playgroud)
它将它分成任意组合\r或\n字符.您还可以使用\s包含任何空白字符.
编辑
它发生在我身上,虽然前面的代码工作正常,但它也删除了空行.如果你想保留空行,你可能想尝试这样做:
$arr = preg_split('/(\r\n|[\r\n])/', $textareaInput);
Run Code Online (Sandbox Code Playgroud)
它基本上是从寻找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);
?>
Run Code Online (Sandbox Code Playgroud)
打印:
Array
(
[0] => Windows
[1] =>
[2] => Mac
[3] =>
[4] => Unix
[5] =>
[6] => Done!
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2564 次 |
| 最近记录: |