AddThis Social Bookmark Button

miercuri, mai 21, 2008

Parser pentru feed-uri (fluxuri): SimplePie

Am lucrat recent la un proiect personal (in curind va deveni public) care construia niste pagini web pornind de la continutul unui flux (feed) RSS (de fapt doua, o pagina generata dintr-un RSS si o alta dintr-un Atom) si aveam nevoie de un script (parser) care sa afiseze continutul articolelor.
Nu e deloc dificil sa fi creat un script propriu, dar 1. lenes fiind, 2. preferind sa nu inventez roata si 3. interesat mai mult de continutul paginii, am cautat ceva de-a gata. Exista o multime de scripturi pentru aceasta sarcina, atit de cele care ruleaza in client (JavaScript) cit si de cele care ruleaza pe server (php, perl, python etc.), eu am cautat ceva facut in php, pentru integrare usoara cu restul proiectului.

Destul de repede am dat peste SimplePie, care m-a satisfacut, atit prin usurinta in folosire cit si prin functionalitate. Este publicat sub licenta BSD deci permite folosirea libera inclusiv in proiecte comerciale (proiectul meu nu era unul comercial).

Ca exemplu despre usurinta in utilizare, iata bum se poate integra intr-o pagina, dupa includerea bibliotecii si initializare, bucla principala poate arata cam asa:


<?php
foreach ($feed->get_items() as $item):
?>

<div class="item">
<h2><a href="<?php echo $item->get_permalink(); ?>"><?php echo $item->get_title(); ?></a></h2>
<p><?php echo $item->get_description(); ?></p>
<p><small>Publicat la <?php echo $item->get_date('j F Y | g:i a'); ?></small></p>
</div>


Bineinteles, dincolo de asta suporta mult mai multe functii, cum ar fi afisarea de fluxuri multiple, autodescoperirea fluxului dintr-o pagina, a faviconurilor sau afisarea de butoane petnru bookmark social.

3 comentarii:

tudorbt spunea...

Imi poti trimite numarul tau de telefon pe adresa evebt@petar.ro? vreau sa vb putin pe tema feeduri. Am niste prbleme cu rss/ul, iar solutia ta mi se pare mai buna decit rss/ul pe care il folosesc acum. Te rog sa imi raspunzi pentru ca am deja 1 luna de cind imi bat capul cum sa rezolv problema asta.. si nu m/am ales decit cu dureri de cap pina acum!
:(
Multumesc anticipat

nicu spunea...

Nu mi-e clar, ai un parser de care nu esti multumit? documentatia si exemplele de la SimplePie mi s-au parut acoperitoare.

Daca vrei sa generezi un feed, exista unelte si pentru asta.

tudorbt spunea...

eu nu am deloc parser , dar as vrea un parser.
De asta si ceream numarul de telefon.
Am un rss implementat in site cu care nu ma descurc absolut deloc pentru ca nu importa imagini decit de le yahoo...
daca ma poti ajuta, te rog da-mi si mie ceva sfaturi... Precizez ca nu ma pricep absolut deloc la acest subiect, dar incerc sa dau de capat la o problema