Preluând din RSS-uri


Dacă titlul vă este cunoscut e pentru că am avut vara trecută articolul WordPress: preluând din RSS-uri, cu o parte a doua. Dar acum vă invit să vorbim în afara cadrului WordPress. Să vedem dacă pur şi simplu avem un proiect în PHP şi el trebuie să preia datele dintr-un flux RSS. Desigur, am putea să preluăm conţinutul şi să îl parcurgem cu propriile funcţii… dar această muncă au făcut-o alţii înaintea noastră. Mai bine folosim MagpieRSS, un proiect gratuit dar din 2005 neactualizat. Mare păcat. Pe de altă parte merge foarte bine, deci poate fi folosit aşa cum a rămas el. Cu doar câteva linii de cod (vom vedea mai jos) putem obţine ceva ca mai jos. Live e aici.

imagine

Dacă descărcaţi arhiva cu MagpieRSS s-ar putea să fiţi speriaţi: atâtea fişiere??? În fapt aveţi nevoie doar de cinci: rss_cache.inc, rss_fetch.inc, rss_parse.inc, rss_utils.inc şi directorul extlib ce conţine un singur fişier (Snoopy.class.inc). Acestea le puteţi pune în rădăcină, sau, mai bine, într-un director ca să separaţi de codul Dvs. Să zicem magpie. Având aceste fişiere puse, mai rămâne să scriem codul nostru. 13 linii de cod PHP (din 22 de linii de cod în total). Huh… a fost greu, nu? 😉

[HTML]<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<?php
define(‘MAGPIE_INPUT_ENCODING’, ‘UTF-8’);
define(‘MAGPIE_OUTPUT_ENCODING’, ‘UTF-8’);
require_once ‘magpierss/rss_fetch.inc’;
$rss = fetch_rss("http://www.cnet.ro/feed/");
echo "<ul>";
foreach ($rss->items as $item ) {
$titlu = $item[title];
$link = $item[link];
$continut=strip_tags($item[content][encoded]);
echo "<li><a href=$link target=_blank>$titlu</a><br>";
echo substr($continut,0,stripos($continut," ",300))."…</li>";
}
echo "</ul>";
?>
</body>
</html>[/HTML]

Liniile 7-8 sunt esenţiale ca să putem “vedea” bine un feed UTF-8. În lina 9 am inclus biblioteca MagpieRSS. În linia 10 am “supt” RSS-ul în şirul $rss. Apoi îl parcurgem cu un foreach şi extragem titlul articolului, linkul către el şi conţinutul. ATENŢIE! Aici lucrurile diferă de la feed la feed. Cel mai bine este să vă uitaţi la structura lui. Eu am făcut testul cu feed-ul CNet.ro şi vedeţi în captura de mai jos: la <title> regăsesc titlul articolului; la <link> regăsesc adresa, url-ul, linkul; iar la <content:encoded> am conţinutul articolului. În linia 15 am golit de taguri HTML conţinutul articolului. Aşa că în liniile 17 şi 18 nu a mai rămas decât să afişez ce doresc.

imagine

Cu MagpieRSS prelucrarea unui feed e o joacă. Sper că v-am convins. Nu uitaţi de liniile 7 şi 8 (şi modificaţi-le după ce encoding are feed-ul vizat). Dacă vreţi tot pachetul, am pregătit aici o arhivă.


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (2 evaluări, media: 5,00 din 5)
Loading...Loading...

2 comentarii

  1. dorin spune:

    Nu am mai scris de mult un mesaj aici, desi citesc destul de des CNet.ro. Cum ştiu din proprie experienţa că scrierea unor astfel de articole trebuie încurajată, nu pot decât să îţi spun: Faci un lucru interesant, mulţumesc!

  2. radu.capan spune:

    Mulţumesc de încurajare. Nu sunt cele mai citite articole dar cândva, cuiva îi vor fi de folos.


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *