Как парсить SRV запись с помощью PHP?

Здравствуйте! У меня есть строка такого вида:
_xmpp-server._tcp.peterhost.ru SRV 100 0 5269 xmpp-s.peterhost.ru.

В ней:
_xmpp-server – сервис(xmpp сервис)
tcp – протокол доступа
100 – приоритет
0 – вес
xmpp-s.peterhost.ru – имя сервера
5269 - порт
Подскажите пожалуйста, как распарсить эту строку, чтобы в массиве получить отдельно каждый из её элементов?
С функцией explode знаком, но здесь используется несколько различных разделителей.
  • Вопрос задан
  • 169 просмотров
Решения вопроса 1
BuriK666
@BuriK666
Компьютерный псих
как-то так
$record = '_xmpp-server._tcp.peterhost.ru SRV 100 0 5269 xmpp-s.peterhost.ru.';
    $data = [];
    list($service, $data['type'], $data['priority'], $data['weight'], $data['port'], $data['target']) = explode(' ', $record);

    list($data['service'], $data['proto'], $data['name']) = explode('.', $service, 3);
    var_dump($data);

array(8) {
  'type' =>
  string(3) "SRV"
  'priority' =>
  string(3) "100"
  'weight' =>
  string(1) "0"
  'port' =>
  string(4) "5269"
  'target' =>
  string(20) "xmpp-s.peterhost.ru."
  'service' =>
  string(12) "_xmpp-server"
  'proto' =>
  string(4) "_tcp"
  'name' =>
  string(12) "peterhost.ru"
}

https://ru.wikipedia.org/wiki/SRV-%D0%B7%D0%B0%D0%...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
zoonman
@zoonman
⋆⋆⋆⋆⋆
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы