Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> czytnik rss + cache
Moli
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Sluchaj, to ze myslisz ze odpalasz to na php5 to nie znaczy ze odpalasz to na php5. I nie zartuje sobie z ciebie tylko ci grzecznie wyjasniam.
Juz nie raz mielismy tu takich macho co to sie "znają" na rzeczy ale jednak problem maja...

Odpal sobie kod:
  1. <?php
  2. ?>

A dowiesz sie jakiego php uzywasz.
Kod bledy wyraźnie mowi ze to php4.

Cytat
Nospor - ekspercie, jak tak sugerujesz ze sie nie znam, to czekam na Twoją odpowiedź. Jak zrobić zeby ta klasa dzialala w PHP 5? Masz okazje zablysnac mimo wieku.
PAtrzy wyzej "ekspercie"

edit: jesli jakims cudem faktycznie masz php5 to moze masz wlączony tryb kompatybilnosci, ale to nie powinno miec wplywu.
Sprawa sie rozwiąze jak pokazesz nam co pokazuje ci phpinfo()
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 04:43