PHP会以逗号分隔值和电子邮件地址进行爆炸

时间:2018-06-14 11:22:54

标签: php

我在需要拆分的电子邮件地址数据库中有一个字符串:

123@test.domain.com,ff@g.com

我用逗号爆炸地址然后尝试爆炸每个电子邮件地址以获取@符号后面的部分

f3

这将返回以下内容:

f2

我希望能够得到@之后的部分,但不确定我哪里出错了

5 个答案:

答案 0 :(得分:3)

删除foreach

写: echo $toAddresses2[1]."<br>";

答案 1 :(得分:2)

您应该尝试以下操作:

$toAddresses = explode(',', $result["to_addresses"]);
foreach ($toAddresses as $a) {
    echo substr($a, 0, strpos($a, "@")) . "<br>"; // For get string before @
    echo substr($a, strpos($a, "@") + 1) . "<br>"; // For get string after @
}

在上面的代码中, strpos 确定@在电子邮件地址中的位置,然后 substr 在该位置之后剪切子字符串。

详细了解strpos&amp; substr

答案 2 :(得分:0)

这一行:$toAddresses2 = explode('@', $a);

将创建一个类似于此的数组:["0": "ff", "1": "g.com"]

因此,您可以使用索引1选择第二个值,例如$toAddresses2[1]

我建议测试该值是否存在,以防字符串中的任何地址因任何原因无效。

所以它会是

echo isset($toAddresses2[1]) ? $toAddresses2[1] . "<br />" : null;

答案 3 :(得分:0)

使用array_slice()作为示例: -

$toAddresses = explode(',', $$result["to_addresses"]);
foreach($toAddresses as $a) {
    $toAddresses2 = explode('@', $a);
    foreach(array_slice($toAddresses2,1) as $b) {
        echo $b.'<BR>';
    }
}

array_slice($ array,$ index)将返回给定索引的切片数组。

答案 4 :(得分:0)

  

试试这个       $ toAddresses = explode(&#39;,&#39;,&#34; 123 @ test.domain.com,ff @ g.com&#34;);       foreach($ toAddresses为$ k =&gt; $ a){       $ toAddresses2 = substr($ a,strpos($ a,&#39; @&#39;)+1);       echo $ toAddresses2。&#34; \ n&#34 ;; }