Создание rss ленты на php

Автор R@MS, 29 Листопад 2012, 18:06:07

Попередня тема - Наступна тема

R@MS

Доброго времени суток всем.  Возникла проблема при создании rss ленты средствами php. Задача простая как двери: в базе данных хранятся новости, их нужно дёргать и выводить в ленту. Но я уже третий день в ступоре. В интернете есть много примеров, перепробовал уже все но   увы ленту по прежнему видят только выборочные rss ридеры :( в частности feedreader видит и таскает исправно а вот Rss bandit , greatnews и плагин для миранды Rss news - отказываются скачивать новые новости.
Может кто-то подсказать что я упустил? Я уже и шаблоны wordpess и joomla ковырял но не смог найти мою ошибку. Также менял header c application/xml на application/rss+xml эффект нулевой.
Мой код:

<?php
header
("content-type: application/xml");
$now date("D, d M Y H:i:s T");
echo 
'<?xml version="1.0" encoding="utf8"?>

          <rss version="2.0">
          <channel>
          <title>Поиск королевы крысомах!</title>
          <link>http://kk.moswarkok.ru/</link>
          <description>Королева Крысомах. Поиск, помощь в избиении :)</description>
  <lastBuildDate>'.$now.'</lastBuildDate>';
  require "settings.php";
$conn = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die(mysql_error());
mysql_select_db($mysql_database, $conn);
mysql_query("SET character_set_client = utf8");
mysql_query("SET character_set_connection = utf8");
mysql_query("SET character_set_results = utf8");
   $sql = "SELECT * FROM `logs` WHERE 1 ORDER BY  `time` DESC ";
$res=mysql_query($sql);
while($arr = mysql_fetch_array($res)){

$d1 = explode(" ", $arr['time']);
$d2 = explode("-", $d1[0]);
$d3 = explode(":", $d1[1]);
$date=date("D, d M Y H:i:s", mktime($d3[0], $d3[1], $d3[2], $d2[1], $d2[2], $d2[0])) ."  GTM";

     echo '<item>
            <title>'.stripslashes($arr['rss_title']).'</title>
            <link>http://kk.moswarkok.ru/</link>
          <description><![CDATA['.$arr['text'].']]></description>
            <pubDate>'.$date.'</pubDate>
         </item>
';
   }     
   echo '</channel>
   </rss>';     
   ?>


на сервере этот файл выглядит так: http://kk.moswarkok.ru/rss3.php

Заранеее спасибо за помощь.
Принимая низкий старт - убедись, что сзади никто не бежит с шестом

R@MS

Разобрался сам. Проблема была не в коде rss проблема была в самих материалах: при наполнении БД у многих записей было идентичное значение поля 'rss_title' и часть ридеров игнорировала все поля с одинаковыми заголовками. После смены заголовков на уникальные, неповторяющиеся проблема пропала.
Принимая низкий старт - убедись, что сзади никто не бежит с шестом