用逗号或换行解析表单textarea

Ada*_* L. 5 php

我有一个表单,允许用户输入的任何一个换行符或逗号分隔的数字列表的文本区域.我需要输入的数字输入数组.不幸的是,我的代码不能正常工作的所有时间.如果用户输入逗号sepated数据和换行然后逗号左所得阵列英寸 另外,如果它们在文本框的末尾添加一个新行,然后它进入一个空值到阵列.我的代码如下:

$data = preg_split( "[\r\n]", $_POST[ 'textarea' ] );
if (count($data) == 1) {
    $string = $data[0];
    $data = explode(',', $string);
}
Run Code Online (Sandbox Code Playgroud)

我希望关于如何解决我遇到的问题提供一些帮助.

Vol*_*erK 11

"由换行符或逗号分隔的数字列表"
因此,您不关心它是哪一个,或者是否有逗号换行符?那么为什么不简单地使用所有三个字符作为分隔符并允许它们中的一个或多个?

<?php
$input = '1,2,3
4,5,,,,
,6,
7
,8,9';

$data = preg_split("/[\r\n,]+/", $input, -1, PREG_SPLIT_NO_EMPTY);
var_dump($data);
Run Code Online (Sandbox Code Playgroud)

版画

array(9) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
  [3]=>
  string(1) "4"
  [4]=>
  string(1) "5"
  [5]=>
  string(1) "6"
  [6]=>
  string(1) "7"
  [7]=>
  string(1) "8"
  [8]=>
  string(1) "9"
}
Run Code Online (Sandbox Code Playgroud)