我在需要拆分的电子邮件地址数据库中有一个字符串:
123@test.domain.com,ff@g.com
我用逗号爆炸地址然后尝试爆炸每个电子邮件地址以获取@符号后面的部分
f3
这将返回以下内容:
f2
我希望能够得到@之后的部分,但不确定我哪里出错了
答案 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 在该位置之后剪切子字符串。
答案 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 ;; }