Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 662 Pomógł: 45 Dołączył: 26.03.2007 Skąd: Warszawa Ostrzeżenie: (0%)
|
Witam
Prosta klasa do obsługi czytnika RSS z cachowaniem. Klasa do działania wymaga PHP > 5. Kod <?php class Rss { public $rssFile; public $cacheFile; public $xml; private $cacheDir; public function __construct ( $rssFile , $cache = 'on' , $cacheDir = 'cache' ) { $this->rssFile = $rssFile; $this->cacheFile = basename ( $this->rssFile ); $this->cacheDir = $cacheDir; if ( empty ( $this->rssFile ) OR empty( $cacheDir ) ) exit; if ( $cache == 'on' ) { if ( file_exists ( $this->cacheDir . '/' . $this->cacheFile . '.php' ) ) { $this->xml = simplexml_load_file ( 'cache/' . $this->cacheFile . '.php' ); } else { $this->xml = simplexml_load_file ( $this->rssFile ); $cacheFileCode = file_get_contents ( $this->rssFile ); $fp = fopen ( $this->cacheDir . '/' . $this->cacheFile . '.php' , 'w' ); fwrite ( $fp , $cacheFileCode ); fclose ( $fp ); } } else { $this->xml = simplexml_load_file ( $this->rssFile ); } } public function clearAllCache () { foreach ( glob($this->cacheDir . "/*.php") as $fileCacheName ) { unlink ( $fileCacheName ); } } public function clearOneCache ( ) { unlink ( $this->cacheDir . '/' . $this->cacheFile . '.php' ); } public function rssInfo () { $arr['version'] = $this->xml->attributes(); $arr['title'] = $this->xml->channel->title; $arr['description'] = $this->xml->channel->description; return $arr; } public function getRss() { return $this->xml->channel->item; } } ?> Uzywanie Kod $rss = new Rss ( 'adres do pliku xml' , 'on/off cache', 'katalog dla cache' ); ps. Aby cache było włączone musimy dać on Wyświetlanie informacji o kanale. Kod $info = $rss->rssInfo(); echo 'Wersja RSS = ' . $info['version'] . '<br />'; echo 'Tytuł kanału = ' . $info['title'] . '<br />'; echo 'Opis kanalu = ' . $info['description'] . '<br />'; Wyświetlenie notek Kod foreach ( $rss->getRss() as $item ) { echo '<h1>' . $item->title . ' (' . $item->pubDate . ')</h1><br /><small>' . $item->description . '</small><br />' . $item->link; } Aby wyczyścić ten cache którego aktualnie używamy dajemy Kod $rss->ClearOneCache(); a żeby wyczyścić wszystkie cache dajemy Kod $rss->ClearAllCache(); Może komuś się przyda (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ps. Użyłem znaczników code a nie php bo php coś szwankuje. Ten post edytował Moli 19.12.2007, 09:50:44 |
|
|
|
Moli czytnik rss + cache 4.04.2007, 16:48:43
bear007 Coś mi nie działa, dostaję taki błąd:
Parse erro... 15.08.2008, 17:05:31
bim2 Zainstaluj php 5 18.08.2008, 13:39:44
bear007 Masz jeszcze jakieś głupie porady? 6.09.2008, 18:16:43
nospor @bear007 oco ci chodzi? Przeciez dobrze napisal. J... 6.09.2008, 18:17:58
bear007 Nie mam problemu ze wzrokiem i jak widze jak byk w... 6.09.2008, 18:23:52
nospor Sluchaj, to ze myslisz ze odpalasz to na php5 to n... 6.09.2008, 18:37:52
bim2 Że tak powiem głupi to jesteś ty.
Tłumacząć T_OLD_... 6.09.2008, 19:30:48
tomaszs2 Przestańcie się wszyscy popisywać jak dzieci w prz... 6.09.2008, 21:00:22
rzymek01 tomasz, generalnie to wystarczyłoby pozamieniac pu... 6.09.2008, 22:26:54
bim2 Nie generalnie dałoby się, a
praktycznie się nie ... 7.09.2008, 22:06:53
tomaszs2 Jakby ktoś jednak wiedział jak przerobić to na 4 (... 7.09.2008, 22:12:45
maxbmx Czy zna ktoś nazwę jakiegoś fajnego darmowego skry... 30.11.2008, 00:02:16
sirkus Witam,
właśnie dokładnie czegoś takiego szukałem,... 4.01.2009, 14:11:24
bear007 jest idealny. Bym nie szukał nic innego. A co do t... 4.01.2009, 14:16:47
erix Cytatjak sobie z tym poradzić i
Wyciągaj sobie do... 4.01.2009, 17:11:48
bim2 Daj
$this->cacheFile = md5( $this-... 4.01.2009, 17:24:18
Sword sory, że tak trochę odkopałem, ale ... 6.02.2009, 16:02:38
Moli Masz racje, to stara klasa i wypadało by ją zaktua... 6.02.2009, 16:44:26
mowgli91 Czy istnieje wersja czytnika dla kanału Atom? 14.09.2010, 13:46:16 ![]() ![]() |
|
Aktualny czas: 24.12.2025 - 09:59 |