Witam
Tak jakoś wyszło, że robię rss dla Kaz-a nie korzystając z dostępu do bazy tylko na podstawie danych przetworzonych a wyświetlanych z cms-a atari.online.pl.
Ponieważ moim "rodzimym" językiem obecnie jest as2/as3 miałem nadzieję, że bez problemu przeportuję "końcówkę" napisaną we flashu do php5 - no niestety, jak to zwykle bywa - przeliczyłem się :D - i piszę od zera.
Obecny wygląd skryptu jest taki:
<?php echo '<?xml version="1.0" encoding="iso-8859-2"?>'; ?>
<rss version="2.0">
<channel>
<title>Newsy ATARI atari.online.pl</title>
<link>http://atari.online/</link>
<description>News-RSS maniaków atari...</description>
<language>pl</language>
<generator>generated from cuteNews 1.0</generator>
<pubDate><?php
echo date("D, d M Y h:i:s O",mktime());
?></pubDate>
<lastBuildDate><?php
echo date("D, d M Y h:i:s O");
?></lastBuildDate>
<copyright>Copyright 2008, atari.online.pl</copyright>
<?php
$fileContents=file_get_contents("news.txt");
//
$rsstext = substr($fileContents, strpos ($fileContents,"<BODY>")+6, strpos ($fileContents ,"<TABLE" )- strpos ($fileContents,"<BODY>")-6);
//
$rsstext = str_ireplace ("<A ", "<item>", $rsstext);
$rsstext = str_ireplace ("href=\"", "<link>", $rsstext);
$rsstext = str_ireplace ( "</A> z ", "</title><pubDate>", $rsstext);
$rsstext = str_ireplace ( " (", "</pubDate><comments>", $rsstext);
$rsstext = str_ireplace ( ")<BR>", "</comments></item>", $rsstext);
$rsstext = str_ireplace ( "\">", "</link><title>", $rsstext);//
echo $rsstext;
?>
</channel>
</rss>
plik wzorcowy, z którego korzystam ma taką postać "wiersza":
<A
href="news.php?subaction=showfull&id=1202511710&archive=&start_from=&ucat=1&number=20&template=Headlines&category=1">"?wiat
Atari" u nas</A> z 09.02.2008 (6)<BR>
tutaj można go zassać w całości: http://www.flashfactory.ovh.org/show/atari/news.txt - jest to już wynik działania skryptu ze strony atari.online.pl, do którego linku bezpośredniego (położenia, ani nazwy i zmiennych) - z oczywistego (myślę) powodu - nie mogę podać. I tak jego wywołanie poza serwisem jest wykrywane i blokowane.
Tak wygląda plik powyższy przeparsowany przez mój skrypt: http://www.flashfactory.ovh.org/show/at … _kopia.xml
Tutaj zaczyna się moja prośba o pomoc aktywnego pehapowca - obecnie zostaje tylko zmienić format daty na właściwy (na <pubDate>Sun, 10 Feb 2008 06:55:53 +0100</pubDate> ) i (ewentualnie) w polu comments zmienić liczbę na link. Niestety, nie znalazłem w specyfikacji rss 2.0 jaka zmiana powoduje ponowne podświetlenie danego rekordu jako nieczytanego, jeżeli zmieniła się liczba komentarzy - jest to chyba zrozumiałe, że dla każdego biorącego udział tam w dyskusji będzie ważne (oprócz tego, czy są nowe newsy), czy pojawiła się nowa odpowiedź w komentowanym wpisie.
No i zapewne skrypt idzie zrobić lepiej - poszedłem 'najprostszą linią oporu' - proszę bardzo, można pozmieniać.
Co bym dodał ze swojej strony, to jeszcze buforowanie pliku wynikowego - tzn. np. automatyczną aktualizację i parsowanie tylko co godzinę przez pierwszego wchodzącego (jeżeli godzina pliku "buforowanego" nie różni się od bieżącej, to pobiera do odczytu ostatnio sparsowaną kopię).
No więc czekam na kontakt ze strony kogoś kompetentniejszego niż ja :)
Z góry dzięki. MaW