从表单中收集URL并将它们放入数组但忽略为空

时间:2014-06-29 11:58:27

标签: php arrays

我有这样的表格,用户可以输入我希望将它们全部放入数组的URL,但如果它是空的,我不希望它在数组中。

我在stackoverflow上找到了另一个答案并试了一下,但它似乎没有用。

任何想法我做错了什么?

如果我在表单中输入以下内容

http://URL1.com
http://URL2.com

http://URL3.com

http://URL4.com

http://URL5.com

这是PHP代码:

$seperateURLs = preg_split('/\n/', $_POST['uploadedURLS']);


foreach($seperateURLs as $key => $URL) {
    if($URL == "") 
        { 
            unset($seperateURLs[$key]); 
        }
}
$allURLs = array_values($seperateURLs);

print_r($allURLs);

这是返回的内容:

Array
(
    [0] => http://URL1.com
    [1] => http://URL2.com
    [2] => 
    [3] => http://URL3.com
    [4] => 
    [5] => http://URL4.com
    [6] => 
    [7] => http://URL5.com
)

2 个答案:

答案 0 :(得分:0)

我会将URL添加到新数组中,并确保在此过程中正确修剪它们:

$seperateURLs = preg_split('/\n/', $_POST['uploadedURLS']);
$allURLs = array ();

foreach($seperateURLs as $key => $URL) {
  $u = trim($URL);
  if($u) !== "") {
    $allURLs[] = $u;
  }
}

print_r($allURLs);

答案 1 :(得分:0)

您可以使用参数PREG_SPLIT_NO_EMPTY

preg_split 来取消空值
$seperateURLs = preg_split('/[\r\n]+/', $_POST['uploadedURLS'], -1, PREG_SPLIT_NO_EMPTY);

print_r($seperateURLs);