Помогите с парсером для вывода двух значений (версия и дата)

Тема в разделе "Регулярные выражения", создана пользователем Hmelex, 23 окт 2014.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. Hmelex

    Hmelex

    Регистр.:
    15 апр 2008
    Сообщения:
    513
    Симпатии:
    119
    Помогите пожалуйста - уже дня 2 мучаюсь, хотя понимаю, что все где то рядом.
    Хочу выводить страницу с вытягиванием информации с нескольких сайтов.
    Информация везде записана по разному.

    Сайт 1:
    PHP:
    <class="versionRs">Текущая версия0.0.0.50
      Дата обновления
    23.10.2014</p>
    Сайт 2:
    PHP:
    <p><a href="nulled.zip">nulled.zip</a> <span class="red">(1 МБ)
    <
    br>Версия 1.2.3 от 22.10.14&nbsp;<img src="i/kartinka.png" alt="картинка"/>
    </
    span></p>
    Сайт 3:
    PHP:
    <class="H4">Текущая версия<br />AbvGde v9.0.5.4</p>
    <
    p>Релиз Jul 102014<br />
    <
    a href="https://nulled.cc">
    Кто может помогите пожалуйста вывести результаты в таком виде:

    Сайт 1:
    Текущая версия системы: 0.0.0.50
    Дата последнего обновления: 23.10.2014


    Сайт 2:
    Текущая версия системы: 1.2.3
    Дата последнего обновления: 22.10.14


    Сайт 3:
    Текущая версия системы: v9.0.5.4
    Дата последнего обновления: Jul 10,2014


    --------------------------------------------------------

    Для вывода Сайт 1 хоть и грубо на делала так:

    PHP:
    $text file_get_contents'http://Сайт 1' );

    preg_match'/Текущая версия: (.*?)  Дата обновления: /is' $text $nomer_rs );
    echo 
    "<br>Текущая версия системы: <font color=red size=5><b>$nomer_rs[1]</b></font>"

    preg_match'/Дата обновления: (.*?)<\/p>/is' $text $date_obnovleniya_rs ); 
    echo 
    "<br>Дата последнего обновления: <font color=red size=5><b>$date_obnovleniya_rs[1]</b></font><br><br>";
    А вот с выводом информации по 2 и 3 сайту проблема, ни никак не получается вывести информацию.

    Пожалуйста помогите информацией, различные форумы смотрела и читала, но как то с ПХП не сильно у меня складывается :(
     
  2. lag

    lag

    Регистр.:
    13 окт 2014
    Сообщения:
    188
    Симпатии:
    227
    Сначала использовать http://php.net/manual/ru/function.strtotime.php
    потом используя date() оформляем как требуется.
    Хотя лучше связка date_create_from_format() с date_format()

    PHP:
    $text file_get_contents'http://Сайт 2' );
    /*
    .*? любое количество любых символов
    \d+ одна или более цифра
    \d+\.\d+\.\d+  три числа разделенные точкой
    */
    preg_match'/<br>Версия (.*?) от (\d+\.\d+\.\d+)/is' $text $m );
    $date date_create_from_format('d.m.y'$m[2]);
    $date date_format($date'd.m.Y');
    echo 
    "<br>Текущая версия системы: <font color=red size=5><b>$m[1]</b></font>";
    echo 
    "<br>Дата последнего обновления: <font color=red size=5><b>$date</b></font><br><br>";


    PHP:
    $text file_get_contents'http://Сайт 3' );
    /*
    \s* любое количество пробелов переносов строк и табуляции.
    \S+ один или более не пробельных символов т.е символы кроме пробела табуляции и переноса строки
    [^<]+ захватит максимально любых символов кроме <
    */
    preg_match'/Текущая версия<br \/>\S+ (\S+)<\/p>\s*<p>Релиз ([^<]+)/is' $text $m );
    echo 
    "<br>Текущая версия системы: <font color=red size=5><b>$m[1]</b></font>";
    echo 
    "<br>Дата последнего обновления: <font color=red size=5><b>".date("d.m.Y"strtotime($m[2]))."</b></font><br><br>";

     
    Последнее редактирование: 24 окт 2014
    Hmelex нравится это.
Статус темы:
Закрыта.