Обработка данных 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:

<data>
   <host>mail.ru</host>
   <index date="01.04.2012">6</index>
   <mr>1</mr>
   <ip>7</ip>
   <hin l1="8805" l2="80037" l3="601560" l4="3721347">4411749</hin>
   <din l1="7947" l2="9721" l3="14240" l4="23332">41349</din>
   <hout l1="30" l2="0" l3="0" l4="42">72</hout>
   <dout>49</dout>
   <anchors>20455</anchors>
   <anchors_out>55</anchors_out>
   <igood>11428916/29314585</igood>
</data>

Данных не много, но они неудобны они для восприятия, правда?
Так давайте создадим 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:

<?php
$mysite = "http://mail.ru"; // Целевой сайт для получения статистики
$url = 'http://xml.solomono.ru/?url=' . $mysite; // Адрес XML документа
$xml = simplexml_load_file($url); // Интерпретирует XML-документ в объект

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

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

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

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

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

Метки: , , , ,
Другие статьи похожей тематики:

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

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

  1. Андрей:

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

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

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

="4remind.ru

Rambler's Top100
Рейтинг@Mail.ru


Яндекс.Метрика