将电子邮件列表修剪到域列表中

时间:2013-01-28 22:06:13

标签: php explode trim

以下功能是将电子邮件列表从文件修剪为域列表并删除重复项的脚本的一部分。

/* define a function that can accept a list of email addresses */
function getUniqueDomains($list) {
    // iterate over list, split addresses and add domain part to another array
    $domains = array();
    foreach ($list as $l) {
        $arr = explode("@", $l);
        $domains[] = trim($arr[1]);
    }

    // remove duplicates and return
    return array_unique($domains);
}

$domains[] = trim($arr[1]);是什么意思?特别是$arr[1][1]在这种情况下的含义是什么?变量$arr怎么变成数组变量?

2 个答案:

答案 0 :(得分:0)

1是数组的索引。

假设您有一个电子邮件地址:email@gmail.com。 explode将使用指定的字符作为分隔符将字符串拆分为数组。

在这种情况下,$arr = explode("@", $l);将使用“@”字符拆分电子邮件,并将数组存储在$ arr中。

$arr = explode("@", "email@gmail.com");将生成以下数组:

$arr[0] = "email"
$arr[1] = "gmail.com"

$domains[] = trim($arr[1]);将域($ arr [1])存储在域数组

答案 1 :(得分:0)

explode的作用是返回数组,其中数组的每个部分都是由分隔符分割的文本,在本例中为@

trim的作用是从以下字符中删除字符串:

  • ' '一个普通的空间。
  • '\t'标签。
  • '\n'新行。
  • '\r'回车。
  • '\0' NUL -byte
  • '\x0b'垂直标签。

第1步:您为getUniqueDomains($list)提供了一个列表。

第2步:对于每封电子邮件,它会使用@分隔符展开电子邮件。

这意味着,如果我发送了电子邮件iteachyou@stackoverflow.phpstuff,则$arr将成为包含iteachyou [0]stackoverflow.phpstuff [1]的数组

在这种情况下,[0][1]是数组中的索引。如果数组有23个项目,那么我可以说$array[22]来获取最后一项。数组索引通常以第一项为0,第二项为1,等等。

第3步:它修剪了当前位于$arr[1]的网址。这是为了清理。它还会将URL添加到$domains数组。

第4步:它会检查重复项。我假设有实际的代码检查重复,而不只是注释。

第5步: return结果。