Обработка данных XML на PHP с помощью расширения SimpleXML

Приветствую Вас, гости и подписчики блога 4remind.ru. Многие из Вас думаю знают, что в настоящее время существует много веб-ресурсов (сервисы, сайты, социальные сети и так далее), которые предоставляют различные данные в формате XML. В этих данных, к примеру, может быть различная статистика, списки и цены товаров интернет магазинов, каталоги видео, литературы и многое другое. Все это конечно хорошо и во многом полезно, но к сожалению вид документа, информации в формате XML абсолютно неудобен для восприятия, особенно когда он очень объемный.

В данной статье я приведу пример PHP-скрипта, с помощью которого можно получить в удобном для чтения виде относительно небольшую, но в то же время полезную для вэбмастеров статистику с популярного сервиса Solomono.ru (xml.solomono.ru).

Для работы с XML мы будем использовать расширение SimpleXML, которое входит в состав PHP с версии 5 и позволяет с помощью PHP-скрипта обрабатывать (искать, запрашивать, изменять) XML документы, поэтому нам не придется ломать голову и писать свой парсер для разбора XML. Расширение SimpleXML установлено в PHP по умолчанию и доступно практически на каждом хостинге.

Для получения статистики с сервиса Solomono.ru нужно подставить в запрос в параметр URL адрес целевого сайта, например Mail.ru:


http://xml.solomono.ru/?url=http://mail.ru

В результате мы получим примерно такие данные в формате XML:


   mail.ru
   6
   1
   7
   4411749
   41349
   72
   49
   20455
   55
   11428916/29314585

Данных не много, но они неудобны они для восприятия, правда?
Так давайте создадим PHP-скрипт с использованием расширения SimpleXML и выведем данные в удобном виде.
Но для начала ознакомимся с назначением тэгов XML сервиса xml.Solomono.ru:

  • host - имя хоста (сайта), для которого выводятся данные;
  • index - количество проиндексированных страниц (date — дата последнего обновления);
  • mr - количество зеркал домена;
  • ip - количество доменов на том же IP;
  • hin - количество ссылок на домен (l1, l2, l3, l4 — данные по уровням вложенности);
  • din - количество доноров (l1, l2, l3, l4 — данные по уровням вложенности);
  • hout - исходящие (внешние) ссылки домена (l1, l2 и т.д. — данные по уровням вложенности);
  • dout - количество получателей (доменов, на которые ссылается данный хост);
  • anchors - количество найденных анкоров;
  • anchors_out — количество исходящих анкоров;
  • igood - соотношение iGood доноров;

Для тех, кто не знает, что такое igood, привожу объяснение:

iGood служит значением более качественной оценки сайтов-доноров. Первая сумма — сумма din (смотрите описание выше) всех доноров сайта. Вторая сумма — сумма dout (смотрите описание выше) всех доноров.
Если к примеру на site01.ru ссылается 1000 сайтов, то его din = 1000, затем суммируются показатели din и dout этих 1000 сайтов. Получается, к примеру, такие значения 10000 и 150000. Это значит, что на доноров сайта site01.ru ссылается 10000 сайтов, а те сами ссылаются на 150000 сайтов. В итоге iGood для сайта site01.ru будет равен 10000/150000.

Ну а теперь сам PHP-скрипт, при помощи которого получим данные о внешних ссылках и донорах для сайта Mail.ru:

';
echo ' Данные сервиса Solomono.ru
'; echo '=============================

'; echo 'Сайт: ' . $xml->host . '

'; // хост, сайт echo 'Страниц в индексе: ' . $xml->index . ' на ' . $xml->index[date] . '
'; //кол-во проиндексированных страниц и дата последнего обновления echo 'Количество зеркал домена: ' . $xml->mr . '
'; // кол-во зеркал домена echo 'Доменов на том же IP: ' . $xml->ip . '
'; //кол-во доменов на том же IP echo 'Количество ссылок на домен: ' . $xml->hin . ' (УВ1: ' . $xml->hin[l1] . ', УВ2: ' . $xml->hin[l2] . ', УВ3: ' . $xml->hin[l3] . ', УВ4: ' . $xml->hin[l4]. ')
'; // кол-во ссылок на домен echo 'Количество доноров: ' . $xml->din . ' (УВ1: ' . $xml->din[l1] . ', УВ2: ' . $xml->din[l2] . ', УВ3: ' . $xml->din[l3] . ', УВ4: ' . $xml->din[l4]. ')
'; // кол-во доноров echo 'Исходящие (внешние) ссылки домена: ' . $xml->hout . ' (УВ1: ' . $xml->hout[l1] . ', УВ2: ' . $xml->hout[l2] . ', УВ3: ' . $xml->hout[l3] . ', УВ4: ' . $xml->hout[l4]. ')
'; // исходящие (внешние) ссылки домена echo 'Количество получателей (доменов, на которые ссылается данный хост): ' . $xml->dout . '
'; // кол-во получателей (доменов, на которые ссылается данный хост) echo 'Количество найденных анкоров: ' . $xml->anchors . '
'; // кол-во найденных анкоров echo 'Количество исходящих анкоров: ' . $xml->anchors_out . '
'; // кол-во исходящих анкоров echo 'iGood доноров: ' . $xml->igood . '
'; // iGood доноров ?>

В результате полученная статистика в формате XML, обработанная вышеуказанным скриптом при помощи PHP-расширения SimpleXML, будет теперь выглядеть примерно так:

Статистика сайта с сервиса Solomono.ru

Для улучшения внешнего вида, форматирования, можно конечно же добавить стили CSS, а для получения данных о другом сайта, например о вашем собственном, нужно всего лишь заменить значение в переменной $mysite.
При желании, Вы можете создать форму на своем сайте, и используя указанный скрипт, можно создать свой собственный мини-сервис.

Желаю вашим сайтам хорошей положительной статистики, и до новых встреч на страницах блога 4remind.ru

Метки: PHP, SimpleXML, XML, сервис, статистика

Поделитесь материалом с другими, воспользуйтесь этими кнопками:
Получать обновления и новые материалы блога по E-mail

Один комментарий к “Обработка данных XML на PHP с помощью расширения SimpleXML”

  1. Андрей:

    Хе… проверил свои сайты с помощью вашего скрипта, и по сравнению с mail.ru они вообще ничтожны :) Впечатляет у них особенно количество iGood доноров :)
    Однако спасибо за скрипт! Про сервис xml на solomono я и не знал, за что тоже спасибо!

Оставить комментарий к Андрей

Уважаемые посетители, пожалуйста, пишите осмысленные и исчерпывающие комментарии. Короткие фразы типа «спасибо автору», «возьму на заметку», «мне помогло» и т.п. будут удаляться. Исключение, когда Вы отвечаете на чей-то вопрос или благодарите за помощь.

Ссылки на Ваш сайт получат статус DoFollow после третьего комментария.

Для вставки кода в комментарии можно использовать BB-коды:
[text] [/text], [php] [/php], [html] [/html]

Подписаться на обновления блога 4remind.ru по RSS
Новости блога в социальных сетях

4remind.ru - персональный блог вебмастера



Наверх
Наверх