2

我有这个 MX 输出$ip

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,但随机的子域名让我一无所知。任何的想法?

4

1 回答 1

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]);
}
大批
(
    [0] => 数组
        (
            [0] => 10
            [1] => ASPMX2.GOOGLEMAIL.COM。
        )

    [1] => 数组
        (
            [0] => 10
            [1] => ASPMX3.GOOGLEMAIL.COM。
        )

    [2] => 数组
        (
            [0] => 1
            [1] => ASPMX.L.GOOGLE.COM。
        )

    [3] => 数组
        (
            [0] => 5
            [1] => ALT1.ASPMX.L.GOOGLE.COM。
        )

    [4] => 数组
        (
            [0] => 5
            [1] => ALT2.ASPMX.L.GOOGLE.COM。
        )

)
于 2012-02-05T19:31:25.793 回答