我在$ip
中有这个MX输出:
10 ASPMX2.GOOGLEMAIL.COM. 10 ASPMX3.GOOGLEMAIL.COM. 1 ASPMX.L.GOOGLE.COM. 5 ALT1.ASPMX.L.GOOGLE.COM. 5 ALT2.ASPMX.L.GOOGLE.COM.
数字是优先级,子域是邮件服务器。我怎么能把它们存储在这样的数组中:
Array
(
[0] => Array
(
[0] => 10
[1] => ASPMX2.GOOGLEMAIL.COM.
)
[1] => Array
(
[0] => 10
[1] => ASPMX3.GOOGLEMAIL.COM.
)
...
)
困难的部分是整个输出可能是任何东西。我的意思是邮件服务器子域名和服务器的数量可以是随机的。在上面是5个邮件服务器,但它可能是3个或只有1个服务器(不要与邮件服务器优先级号混淆)。
我正在考虑preg_match
,但随机的子域名只会让我一无所知。有什么想法吗?
答案 0 :(得分:2)
$arr = array();
preg_match_all('/(\d+) ([\w.\-]+)/', $ip, $matches);
for($i = 0; $i < count($matches[1]); $i++)
{
$arr[] = array($matches[1][$i], $matches[2][$i]);
}
Array ( [0] => Array ( [0] => 10 [1] => ASPMX2.GOOGLEMAIL.COM. ) [1] => Array ( [0] => 10 [1] => ASPMX3.GOOGLEMAIL.COM. ) [2] => Array ( [0] => 1 [1] => ASPMX.L.GOOGLE.COM. ) [3] => Array ( [0] => 5 [1] => ALT1.ASPMX.L.GOOGLE.COM. ) [4] => Array ( [0] => 5 [1] => ALT2.ASPMX.L.GOOGLE.COM. ) )