За последние 24 часа нас посетили 179116 программистов и 3089 роботов. Сейчас ищут 1805 программистов ...

Нужна помощь в составлении регулярного выражения

Тема в разделе "Регулярные выражения", создана пользователем klon5555, 3 янв 2012.

  1. klon5555

    klon5555 Активный пользователь

    С нами с:
    11 дек 2010
    Сообщения:
    74
    Симпатии:
    0
    toxateam, может вы создадите свою тему?
     
  2. toxateam

    toxateam Активный пользователь

    С нами с:
    3 янв 2012
    Сообщения:
    9
    Симпатии:
    0
  3. klon5555

    klon5555 Активный пользователь

    С нами с:
    11 дек 2010
    Сообщения:
    74
    Симпатии:
    0
    Так сказать... Не очень нормально. И это не очень нормально заключается в:
    Насчет массива. 0 всегда ничего не возвращает, а 1 всегда возвращает 720р
     
  4. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Я изучил твой код, у меня есть 1 хорошая и 1 плохая новость.

    Плохая в том, что RSS плагин на том сайте работает не правильно отсюда возникают много проблем.
    Если посмотреть исходные код страницы, то можнжо увидеть что RSS загруается не до конца, т.е. получаемый XML не сформирован правильно как говорится Well Formed, и уж тем более xml не валидный.В этом XML имеются не закрытые теги.

    Можешь посмотреть на пример тут каким должен быть RSS

    [url=http://www.linux.org.ru/news...w.linux.org.ru/news/linux-gene ... output=rss
    [/url]

    Я вижу 2 способа как решить эту проблему

    1)Темной, темной ночью когда никто не будет ожидать хакнуть сервак и исправить их плагин ;)
    Но помни о существовании УК РФ.

    2)Дописать скрипт и парсить только нормально присланные данные.Попробуй следующий код

    PHP:
    1.  
    2.  <?
    3.  $url = 'http://lostfilm.tv/rssdd.xml';
    4.  $xml = xml_parser_create();
    5.  $bad_xml = file_get_contents($url);
    6.  
    7.  xml_parser_set_option($xml, XML_OPTION_SKIP_WHITE, 1);
    8.  xml_parse_into_struct($xml, $bad_xml, $element, $index);
    9.  
    10.  $bitrate = array();
    11.  
    12.  echo "<div style='border: 1px solid #30d5c8; border-radius: 7px; padding: 0px; width: 800px;'>";
    13.  
    14.  // get count of the normal '<item>...</item>' tags
    15.  $count = substr_count($bad_xml, '</item>');
    16.  
    17.  for ($i=0; $i < $count; $i++) {
    18.  
    19.  $str = $element[$index["TITLE"][$i+1]]["value"];
    20.  
    21.  $pos = strrpos($str,'(');
    22.  preg_match('/S?(\d{2,})E?(\d{0,2})/i',substr($str,$pos,255),$out);
    23.  $s = $out[1];
    24.  $e = $out[2];
    25.  
    26.  $str = rtrim(substr($str,0,$pos),' .');
    27.  
    28.  if(substr($str,-1,1) == ']') {
    29.  $pos = strrpos($str,'[');
    30.  $bitrate[] .= trim(substr($str,$pos,255),'[]');
    31.  
    32.  $str = rtrim(substr($str,0,$pos));
    33.  $str = $str.".";
    34.  }
    35.  else
    36.     $bitrate[] .= '';
    37.  
    38.  $name = explode('(', $str);  
    39.  $title = explode('.', $name[1]);
    40.  
    41.  echo '<div style="background:  #30d5c8; border-radius: 5px; margin: 2px;"><a href="'.$element[$index["LINK"][$i+1]]["value"].'" style="color: blue; text-decoration: none;"> '.$title[1].$bitrate[$i].' </a></div>';
    42.  }
    43.  echo "</div>";
    44.  
    45.  ?>
    46.  
    Изменил регулярное выражение, может встречаться и такой формат (S01). Теперь скрипт проводит столько итераций, сколько нормальных тегов <item>...</tem>, т.е. нормально присланных данных.

    Парсить остальную часть считаю бессмысленным т.к. эти данные присылаются не полностью.
     
  5. klon5555

    klon5555 Активный пользователь

    С нами с:
    11 дек 2010
    Сообщения:
    74
    Симпатии:
    0
    Благодарю вас за уделенное мне время:) В этот раз действительно всё работает и достаточно хорошо. :)
     
  6. klon5555

    klon5555 Активный пользователь

    С нами с:
    11 дек 2010
    Сообщения:
    74
    Симпатии:
    0
    Вероятно мне нужно писать на их форум что бы решить возникший вопрос, но попробую задать его тут.

    Вообщем у них что-то сделано, что если ссылку нажать на моем сайте - откроется страница этого фильма, а если у них такую же ссылку нажать - скачаеться торрент

    Я когда-то пытался торрент настроить на парсинг их RSS, всё получилось, но ссылка на rss выглядила такой: (для utorrent)
    http://lostfilm.tv/rssdd.xml:COOKIE:uid ... sess=*****
    эти данные хранятся в куках, и действительны почти всегда (пока на сайте авторизован)
     
  7. klon5555

    klon5555 Активный пользователь

    С нами с:
    11 дек 2010
    Сообщения:
    74
    Симпатии:
    0
    Еще заметил такой нюанс. У них RSS странный какойто. после каждой перезагрузки подгружается разное количество кода)