![]() |
![]() ![]() |
![]() |
![]()
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 ![]() ps. Użyłem znaczników code a nie php bo php coś szwankuje. Ten post edytował Moli 19.12.2007, 09:50:44 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 10.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Coś mi nie działa, dostaję taki błąd:
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/&&&/domains/&&&/public_html/rss_agregat.php on line 7 na linii: public $rssFile; na początku deklaracji klasy Rss Ten post edytował bear007 6.09.2008, 18:15:51 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Zainstaluj php 5
![]() -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 10.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Masz jeszcze jakieś głupie porady?
Ten post edytował bear007 6.09.2008, 18:17:45 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@bear007 oco ci chodzi? Przeciez dobrze napisal. Jak sie nie znasz to nie pyskuj chociaz
Klasa ta jest napisana pod php5. A ze ty uzywasz jej na php4 to dostajesz wlasnie takie bledy -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 10.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie mam problemu ze wzrokiem i jak widze jak byk w pierwszej linii posta autora watku ze wymagane jest PHP 5 to sprawdzam to na samym poczatku. Mam zainstalowane PHP 5 i jezeli ktos tutaj umie pomoc to o to prosze. A nie o powtarzanie informacji z samej gory watku, no chyba ze ten post znajduje sie w Hyde Park, to moze sie wszyscy posmiejemy z jakiegos kawalu dobrego?
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. Ten post edytował bear007 6.09.2008, 18:25:54 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 36 557 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:
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() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Że tak powiem głupi to jesteś ty.
Tłumacząć T_OLD_FUNCTION ja bym się nakierował, że jednak coś jest stare. Taki błąd zawsze wystepuje po użyciu public pod PHP 4. I ta klasa działa w PHP 5. Spróbuj dodać zamiast .php to .php5 -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 3.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Przestańcie się wszyscy popisywać jak dzieci w przedszkolu.
Chciałbym u siebie skorzystać z tego kodu w PHP 4, czy ktoś z Was mógłby podpowiedzieć jak go przerobić? -------------------- Polub mnie na Facebooku http://www.facebook.com/pages/Polishwords/172360026392
Albo Google+ https://plus.google.com/115722487152014068500/posts |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
tomasz, generalnie to wystarczyłoby pozamieniac public, private na var,
z funkcji składowych wywalić public itp., a __construct zamienić na nazwe klasy ale jest jedno ale ![]() ta klasa korzysta z roszerzenia działającego tylko na php5 (SimpleXML) z manuala: Cytat The SimpleXML extension requires PHP 5.
-------------------- :]
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Nie generalnie dałoby się, a
praktycznie się nie da i nie ma sensu przerabiać, bo to tak jakbyś chciał do nowego Ferrari wrzucić silnik parowy. :] -------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 3.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jakby ktoś jednak wiedział jak przerobić to na 4 (chodzi mi o pominięcie tej klasy) to byłbym wdzięczny za podpowiedź.
-------------------- Polub mnie na Facebooku http://www.facebook.com/pages/Polishwords/172360026392
Albo Google+ https://plus.google.com/115722487152014068500/posts |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 8.03.2008 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
Czy zna ktoś nazwę jakiegoś fajnego darmowego skryptu do rss'ów?
Chodzi o to zeby tworzyc sobie na stronie www czytnik wybranych cssów, otagować je, skategoryzować itp szukałem w googlu ale nic nie znalazłem :/ |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 7.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
właśnie dokładnie czegoś takiego szukałem, tylko pojawia się pewien problem, iż cache zapisuje się w ten sposób że dla rss np. banki.wp.pl/rss.xml zapisze w folderze cache plik rss.php i dla rss fundusze.wp.pl/rss.xml też będzie chciało zapisać plik z cache o nazwie rss.php jak sobie z tym poradzić ![]() ![]() |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 10.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
jest idealny. Bym nie szukał nic innego. A co do tego co piszesz, to możesz złożyć to z nazwą domeny
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat jak sobie z tym poradzić i Wyciągaj sobie domenę z adresu i modyfikuj zmienną:
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Daj
$this->cacheFile = md5( $this->rssFile ); i będzie działać, ale nie rozróżnisz później który plik do jakiego adresu nalezy ![]() -------------------- |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 17.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
sory, że tak trochę odkopałem, ale chyba tutaj czegoś nie rozumiem, co daje to cache, skoro jeżeli raz wczyta jakiś rss to potem czyta tylko z tego co się zapisało w folderze cache niczgo nie dopisując ani nie zamieniając? tutaj:
czyli nawet jak by sie cos zmieniło na stronie to i tak pobierze z folderu cache? Ten post edytował Sword 6.02.2009, 16:03:53 |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 662 Pomógł: 45 Dołączył: 26.03.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Masz racje, to stara klasa i wypadało by ją zaktualizować
![]() ![]() |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 27.12.2008 Skąd: Szamotuły, Poznań Ostrzeżenie: (0%) ![]() ![]() |
Czy istnieje wersja czytnika dla kanału Atom?
-------------------- Zapraszam na www.redtube.com
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 30.06.2025 - 11:08 |