За последние 24 часа нас посетили 20954 программиста и 1016 роботов. Сейчас ищут 510 программистов ...

RSS новости

Тема в разделе "Поисковая система php.ru", создана пользователем 440Hz, 8 сен 2006.

  1. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    На php.ru запущена трансляция RSS новостей с сайтов близкой тематики. Если у кого есть хорошие ссылки постите сюда.

    кому интересно делается это так:

    PHP:
    1.  
    2. <?
    3. include('../oops/start.inc');
    4.  
    5. $RSSS = $OOPSGlobal['SES']->db->QueryObjects('SELECT * FROM rss ORDER BY DATE');
    6. foreach($RSSS AS $RSS) {
    7.  
    8.     print("\n\n".$RSS->RSS.' processing ...');
    9.  
    10.     $XML = @file_get_contents($RSS->RSS);
    11.  
    12.     if(!$XML) continue;
    13.  
    14.  
    15.     $ICONV = "UTF-8";
    16.     if(stristr($XML,'encoding="windows-1251"')) {
    17.         $ICONV = 'CP1251';
    18.     }
    19.     print("\nEncoding from $ICONV");
    20.  
    21.     print("\nRecive ".strlen($XML)." byte(s). Parsing ...");
    22.  
    23.     $ITEMS = GetXMLAllVal($XML,'item');
    24.  
    25.     print("\nItems: [".count($ITEMS)."]");
    26.     $NUM = 4;
    27.     foreach($ITEMS AS $ITEM) {
    28.  
    29.         $TITLE = GetXMLFirstVal($ITEM,'title');
    30.         $LINK = GetXMLFirstVal($ITEM,'link');
    31.         $DESC = GetXMLFirstVal($ITEM,'description');
    32.         $DATE = GetXMLFirstVal($ITEM,'pubDate');
    33.         $CAT  = GetXMLFirstVal($ITEM,'category');
    34.  
    35.         if(!$DATE) {
    36.             $DATE = GetXMLFirstVal($ITEM,'dc:date');
    37.         }
    38.  
    39.         if($DATE)
    40.             $DATE = strtotime($DATE);
    41.         else
    42.             $DATE = time();
    43.  
    44.         $MD5 = md5($TITLE.$LINK.$DESC);
    45.  
    46.         $TITLE = html_entity_decode($TITLE,ENT_QUOTES);
    47.         $DESC  = html_entity_decode($DESC,ENT_QUOTES);
    48.         $CAT   = html_entity_decode($CAT,ENT_QUOTES);
    49.  
    50.         if($ICONV != 'UTF-8') {
    51.             $TITLE = iconv($ICONV,'UTF-8',$TITLE);
    52.             $DESC  = iconv($ICONV,'UTF-8',$DESC);
    53.             $CAT   = iconv($ICONV,'UTF-8',$CAT);
    54.         }
    55.  
    56.         $TITLE = '<b>'.$RSS->SITE.':</b> '.$TITLE;
    57.  
    58.         print("\nITEM2: ".date('d.m.Y H:i',$DATE)." - [".iconv('UTF-8','CP1251',$CAT)."] ".iconv('UTF-8','CP1251',$TITLE));
    59.  
    60.         $OLDRSS = $OOPSGlobal['SES']->db->QueryObject("SELECT * FROM rss_news WHERE MD5 = '$MD5'");
    61.         if(!$OLDRSS) {
    62.             $SQL = "INSERT INTO rss_news (TITLE,LINK,`DESC`,DATE,MD5) VALUES('".mysql_escape_string($TITLE)."','".mysql_escape_string($LINK)."','".mysql_escape_string($DESC)."',".$DATE.",'$MD5')";
    63.             $OOPSGlobal['SES']->db->Query($SQL);
    64.             print("\nInserting ...");
    65.         } else {
    66.             $SQL = "UPDATE rss_news SET TITLE = '".mysql_escape_string($TITLE)."', LINK = '".mysql_escape_string($LINK)."', `DESC` = '".mysql_escape_string($DESC)."', DATE = ".$DATE." WHERE MD5 = '$MD5'";
    67.             $OOPSGlobal['SES']->db->Query($SQL);
    68.             print("\nUpdateing ...");
    69.         }
    70.  
    71.         if(!$NUM--) break;
    72.  
    73.     }
    74.  
    75.  
    76.  
    77. }
    78.  
    79. print "\n";
    80.  
    81. include('../oops/stop.inc');
    82.  
    83. ?>
     
  2. vb

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

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg
    [offtop]
    Прям расскрыватель корпоротивных разработок :) Может мне тоже какую нить системку опубликовать, никто не будет против? :)
    [/offtop]
     
  3. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    vb

    AJAX рулит?
     
  4. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
  5. vb

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

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg