Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> czytnik rss + cache
Moli
post 4.04.2007, 16:48:43
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 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
Go to the top of the page
+Quote Post

Posty w temacie
- 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


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:05