За последние 24 часа нас посетили 34433 программиста и 1693 робота. Сейчас ищет 651 программист ...

rss канал

Тема в разделе "PHP для новичков", создана пользователем quazare, 27 фев 2009.

  1. quazare

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

    С нами с:
    3 июн 2008
    Сообщения:
    88
    Симпатии:
    0
    Адрес:
    Nsk
    народ, подскажите пожалуйста скрипт для создания собственного rss канала
     
  2. 440Hz

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

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

    p.s. ну почему всегда ищут готовое и НИХОТЯТ хоть чуточку пошевелить мозгами? может из-за отсутствия таковых? куда катится мир? Наверное в жопу!

    ####################################

    вот так на dezinfo.net генерится

    http://dezinfo.net/rss/

    HTML:
    1.  
    2. <link rel="alternate" type="application/rss+xml" title="dezinfo.net девочки любят, мальчики любят" href="http://www.dezinfo.net/rss/">
    3.  
    PHP:
    1.  
    2. <?php
    3.  
    4. header('Content-Type: text/xml; charset=windows-1251');
    5. header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // Date in the past
    6. header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    7. header ("Cache-Control: no-cache, must-revalidate");  // HTTP/1.1
    8. header ("Pragma: no-cache");                          // HTTP/1.0
    9.  
    10. #########################################################################
    11.  
    12. $NOHEADERS = true;
    13.  
    14. require_once('../../oops/start.inc');
    15.  
    16. $BODY = new OOPSBuffer();
    17.  
    18. $date = date('D, j M Y H:m:i GMT ');
    19.  
    20. $RSS = <<< ENDRSS
    21. <?xml version="1.0" encoding="windows-1251" ?>
    22. <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"
    23. xmlns:annotate="http://purl.org/rss/1.0/modules/annotate/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    24. <channel>
    25. <title>Dezinfo.Net</title>
    26. <link>http://www.dezinfo.net/</link>
    27. <description><![CDATA[{Dezinfo.Net - девочки любят, мальчики любят]]></description>
    28. <managingEditor>forum@php.ru</managingEditor>
    29. <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    30. <generator>Dezinfo RSS Feed 1.0</generator>
    31. <language>ru</language>
    32. <lastBuildDate>{$date}</lastBuildDate>
    33. <image>
    34.     <url>http://images.dezinfo.net/karlson.jpg</url>
    35.     <title>Dezinfo.Net</title>
    36.     <link>http://www.dezinfo.net/</link>
    37.     <width>192</width>
    38.     <height>137</height>
    39. </image>
    40.  
    41. ENDRSS;
    42.  
    43. #############################
    44.  
    45. $WDATE2 = $WDATE1 = " AND ( DATE < ".time().' OR ( DATE < '.mktime(23,59,59,date('m'),date('d'),date('Y')).' AND F5 = 1) )';
    46.  
    47. $POSTS = $OOPSGlobal["SES"]->db->QueryObjects("
    48.     SELECT * FROM posts WHERE F1 = 1 AND F2 = 1 {$WDATE2}
    49.         ORDER BY DATE DESC LIMIT 20
    50.         ");
    51.  
    52. #############################
    53.  
    54. foreach($POSTS AS $POST) {
    55.  
    56.     $date = date('D, j M Y H:m:i GMT ',$POST->DATE);
    57.  
    58.     $ANS = $POST->ANS;
    59.  
    60.     if(!empty($POST->IMG)) {
    61.         $ANS .= '<br /><br /><a href="http://www.dezinfo.net/post/'.$POST->id.'" target=_blank><img src="'.$POST->IMG.'" border=0></a>';
    62.     }
    63.  
    64.     $VIEW = "просмотров: {$POST->VIEW} / коментариев: {$POST->COMM}";
    65.  
    66.     $ANS .= '<br />'.$VIEW;
    67.  
    68.     $ANS = nl2br($ANS);
    69.  
    70.     $RSS .= <<< ENDITEM
    71.  
    72. <item>
    73. <title><![CDATA[{$POST->TIT}]]></title>
    74. <link>http://www.dezinfo.net/post/{$POST->id}</link>
    75. <pubDate>{$date}</pubDate>
    76. <guid isPermaLink="true">http://www.dezinfo.net/post/{$POST->id}</guid>
    77. <description><![CDATA[{$ANS}]]></description>
    78. <dc:creator>Dezinfo</dc:creator>
    79. <dc:subject><![CDATA[{$POST->TIT}]]></dc:subject>
    80. <annotate:reference rdf:resource="http://www.dezinfo.net/post/{$POST->id}" />
    81. <comments>http://www.dezinfo.net/post/{$POST->id}#comments</comments>
    82. </item>
    83.  
    84. ENDITEM;
    85.  
    86. }
    87.  
    88.  
    89. $RSS .= <<<ENDRSS
    90.  
    91. </channel>
    92. </rss>
    93. ENDRSS;
    94.  
    95. $BODY->Send($RSS);
    96.  
    97. print $BODY->Read();
    98.  
    99. ?>
     
  3. quazare

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

    С нами с:
    3 июн 2008
    Сообщения:
    88
    Симпатии:
    0
    Адрес:
    Nsk
    спасибо, но где взять ../../oops/start.inc
     
  4. shreck

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

    С нами с:
    7 авг 2007
    Сообщения:
    479
    Симпатии:
    0
    Адрес:
    Россия, Саратов
    Тебе принцип показали, а дальше сам думай!
     
  5. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    перестань думать в терминах Copy+Paste. Начни видеть мысль, а не ее следствия.

    RSS канал это просто определенных образом сформированный XML. Посмотри как он там формируется и сделай как тебе удобно.

    Код (Text):
    1.  
    2. hosting(440hz):~$>curl -v "http://dezinfo.net/rss/"
    3. * About to connect() to dezinfo.net port 80 (#0)
    4. *   Trying 80.93.56.219... connected
    5. * Connected to dezinfo.net (80.93.56.219) port 80 (#0)
    6. > GET /rss/ HTTP/1.1
    7. > User-Agent: curl/7.16.3 (i386-portbld-freebsd6.3) libcurl/7.16.3 OpenSSL/0.9.7e zlib/1.2.3
    8. > Host: dezinfo.net
    9. > Accept: */*
    10. >
    11. < HTTP/1.1 200 OK
    12. < Server: nginx/0.3.49
    13. < Date: Fri, 27 Feb 2009 10:30:51 GMT
    14. < Content-Type: text/xml; charset=windows-1251
    15. < Transfer-Encoding: chunked
    16. < Connection: keep-alive
    17. < Keep-Alive: timeout=5
    18. < X-Powered-By: PHP/4.4.9
    19. < Expires: Mon, 26 Jul 1997 05:00:00 GMT
    20. < Last-Modified: Fri, 27 Feb 2009 10:30:50 GMT
    21. < Cache-Control: no-cache, must-revalidate
    22. < Pragma: no-cache
    23. < Set-Cookie: X_LNG=ru
    24. < Set-Cookie: OOPS_SID=zrwc9pk21q2x4vbs; expires=Sat, 28 Feb 2009 10:30:50 GMT; path=/; domain=www.dezinfo.net
    25. <
    26. <?xml version="1.0" encoding="windows-1251" ?>
    27. <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"
    28. xmlns:annotate="http://purl.org/rss/1.0/modules/annotate/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    29. <channel>
    30. <title>Dezinfo.Net</title>
    31. <link>http://www.dezinfo.net/</link>
    32. <description><![CDATA[{Dezinfo.Net - девочки любят, мальчики любят]]></description>
    33. <managingEditor>forum@php.ru</managingEditor>
    34. <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    35. <generator>Dezinfo RSS Feed 1.0</generator>
    36. <language>ru</language>
    37. <lastBuildDate>Fri, 27 Feb 2009 13:02:30 13FebMSK </lastBuildDate>
    38. <image>
    39.         <url>http://images.dezinfo.net/karlson.jpg</url>
    40.         <title>Dezinfo.Net</title>
    41.         <link>http://www.dezinfo.net/</link>
    42.         <width>192</width>
    43.         <height>137</height>
    44. </image>
    45.  
    46. <item>
    47. <title><![CDATA[А что у вас на балконе творится? (5 фото)]]></title>
    48. <link>http://www.dezinfo.net/post/12731</link>
    49. <pubDate>Fri, 27 Feb 2009 23:02:55 23FebMSK </pubDate>
    50. <guid isPermaLink="true">http://www.dezinfo.net/post/12731</guid>
    51. <description><![CDATA[<img src="http://images.dezinfo.net/image/guest/smile/39.gif"><br />
    52. <br />
    53. У меня на балконе стоят:<br />
    54. <br />
    55. - булыжник, который я по пьяне с Крыма притащил в качестве сувенира<br />
    56. <br />
    57. - батарея центрального отопления (я рассказывал, как она лопнула на новый год, и было весело 6 этажам снизу :)))<br />
    58. <br />
    59. - десятка два бычков <br />
    60. <br />
    61. - 10-15 пакетов с банками из-под пива. Бутылочное выносить, знаете ли, совсем в лом.<br />
    62. <br />
    63. <b>Признавайтесь, что у вас интересного?</b><br />
    64. <br />
    65. <center><font size=6 color="#000080"><b>ОБЗОР ДНЯ!</b></font></center><br /><br /><a href="http://www.dezinfo.net/post/12731" target=_blank><img src="http://images2.dezinfo.net/image/02.2009/balcones/0.jpg" border=0></a><br />просмотров: 5288 / коментариев: 173]]></description>
    66. <dc:creator>Dezinfo</dc:creator>
    67. <dc:subject><![CDATA[А что у вас на балконе творится? (5 фото)]]></dc:subject>
    68. <annotate:reference rdf:resource="http://www.dezinfo.net/post/12731" />
    69. <comments>http://www.dezinfo.net/post/12731#comments</comments>
    70. </item>
    71.  
    72. <item>
    73. <title><![CDATA[Что не так на фото? (далее фото крупнее)]]></title>
    74. <link>http://www.dezinfo.net/post/12704</link>
    75. <pubDate>Fri, 27 Feb 2009 23:02:45 23FebMSK </pubDate>
    76. <guid isPermaLink="true">http://www.dezinfo.net/post/12704</guid>
    77. <description><![CDATA[<img src="http://images.dezinfo.net/image/gif/smile/35.gif"><br />
    78. Моя любимая рубрика.<br />
    79. <br />
    80. Смотрим внимательно.<br />
    81. <br />
    82. Кто первый найдет маленький секрет на фото, тому специальный приз от Дезинфы.<br />
    83. <br />
    84. Сегодня это -<br />
    85. <br />
    86. <center><font color="#000080" size=6><b>ЧУРУЧОК!</b></font></center><br /><br /><a href="http://www.dezinfo.net/post/12704" target=_blank><img src="http://images.dezinfo.net/image/02.2009/churuchok/0.jpg" border=0></a><br />просмотров: 2443 / коментариев: 37]]></description>
    87. <dc:creator>Dezinfo</dc:creator>
    88. <dc:subject><![CDATA[Что не так на фото? (далее фото крупнее)]]></dc:subject>
    89. <annotate:reference rdf:resource="http://www.dezinfo.net/post/12704" />
    90. <comments>http://www.dezinfo.net/post/12704#comments</comments>
    91. </item>
    92.  
    93. [skip]
     
  6. quazare

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

    С нами с:
    3 июн 2008
    Сообщения:
    88
    Симпатии:
    0
    Адрес:
    Nsk
    я знаю как формировать rss просто я не знаю, как получить именно в таком стиле - http://www.dezinfo.net/rss/ вот и все...
     
  7. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    PHP:
    1. <?php
    2. header('Content-Type: application/xml; charset=UTF-8');
     
  8. quazare

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

    С нами с:
    3 июн 2008
    Сообщения:
    88
    Симпатии:
    0
    Адрес:
    Nsk
    такого в примере нету.. должен быть определенный xsl шаблон или как?
     
  9. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    просто выдай XML как написано и все
     
  10. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    и в страницу вставь META как я написал. броузеры подхватят все сами.
     
  11. unicross

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

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    Кстати, интересно какой Content-Type лучше отправлять
    Код (Text):
    1. text/xml
    2. application/xml
    3. application/rss+xml
    ?
     
  12. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    не. че я для кого примеры пишу? ну не хотим примеров. идем на Яндекс или Гугл и смотрим там они отдают.

    особо умные читают RFC
     
  13. quazare

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

    С нами с:
    3 июн 2008
    Сообщения:
    88
    Симпатии:
    0
    Адрес:
    Nsk
    О! Спасибо большое. Выходит "стили" отображения rss-ка берет от сюда

    PHP:
    1. xmlns:dc="http://purl.org/dc/elements/1.1/"
    2. xmlns:annotate="http://purl.org/rss/1.0/modules/annotate/"
    3. xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    теперь все ясно.

    собственно класс создания самой rss-ки мне не особо и нужен - все равно придется ее пересоздавать из базы sqlite
     
  14. 440Hz

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

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