Хранение копий в массиве - PullRequest
       27

Хранение копий в массиве

2 голосов
/ 05 февраля 2012

У меня есть этот выход 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, но случайное имя субдомена просто оставляет меня в неведении. Есть идеи?

1 Ответ

2 голосов
/ 05 февраля 2012
$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.
        )

)
...