- Home
- Categorie
- Coding e Sistemistica
- PHP
- notizie prelevate da feed in riquadro
-
notizie prelevate da feed in riquadro
devo inserire un riquadro nel mio sito dove far apparire le notizie prelevate da un feed, un riquadro come quello che si trova sul sito sotto riportato
bancadirimini.it/main/index.cfm
(quello che si vede sulla destra, notizie fiscali by...)
qualcuno mi può aiutare?
grazie
-
Ciao draganato,
io recupero i feed RSS con le librerie CURL, e poi impagino le notizie.
Con questo meccanismo ho creato la sezione RSS sul mio sito.Se ti serve una classe per gestire le CURL lib e prelevare i feed RSS remoti puoi dare uno sguardo ad un articolo che ho scritto io.
Lo trovi qui.
-
Ciao e grazie, volevo sapere, tecnicamente cosa devo fare, leggendo il tuo articolo mi sono chiesto, ma devo riportare tutti e due i codici , cioè quello nella 2° e quello della 3° pagina???
ancora grazie per il tuo aiuto.
-
Ciao,
dunque nella seconda pagina c'è la classe, o il componente, che si occupa di prelevare i file remoti e di incapsularne il contenuto nella proprietà 'content' della stessa classe.Nell'ultima pagina c'è l'esempio di come utilizzare il componente.
Nel tuo caso, l'istruzione
[php]echo $rfR->getContent();
[/php]dovrebbe stamparti a video i feed rss contenuti nel file prelevato.Poi, per ricreare il DOM in modo 'smart' puoi utlizzare la classe SimpleXMLElement:
[php]$xml = new SimpleXMLElement($rfR->getContent());
echo $xml->channel[0]->item[0]->title;[/php]Mi sembra che ora hai tutto il necessario per provare a risolvere il tuo problema.
Buon lavoro
-
Quindi facciamo l'esempio che il mio feed dove prelevo le notizie sia al seguente indirizzo
nomesito.com/notizie.xml
dove vado ad inserire questo valore??
scusami ma non sono proprio un tecnico
-
Scusa la fretta.
[php]
include 'CRemoteFileReader.php';//URL da agganciare
$url_feed = "nomesito.com/notizie.xml";//Istanzio un oggetto RemoteFileReader
$rfR = new RemoteFileReader($url_feed);//Test delle librerie
if (! $rfR->getContent()) {
echo 'Librerie CURL non installate.';
exit;
}//Creo il DOM del documento XML per poi poter navigare al suo interno
$xml = new SimpleXMLElement($rfR->getContent());//Visualizzo il titolo del primo item
echo $xml->channel[0]->item[0]->title;
[/php]
-
seguendo la procedura mi appare solo il titolo della prima notizia del file feed , ma non mi appare ne il testo della notizia , ne a rotazione le altre notizie, come fare:
ho creato un file che si chiama
CRemoteFileReader.php:
<?php
class RemoteFileReader{
private $url = "";
private $content = "";function __construct($url) {
$this->url = $url;//Testo l'esistenza delle cURL lib if (function_exists('curl_init')) { //Inizializzo una nuova Risorsa $ch = curl_init(); //Imposto l'URL da agganciare curl_setopt($ch, CURLOPT_URL, $url); //Siccome non mi interessa alcun Header //ma solo il contenuto del file remoto //imposto a zero la richiesta di Header curl_setopt($ch, CURLOPT_HEADER, 0); //Siccome la risposta non la voglio visualizzare //sul browser ma la voglio conservare imposto 1 //alla proprieta' CURLOPT_RETURNTRANSFER curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Imposto uno user agent per simulare un browser curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5)' . ' Gecko/20041107 Firefox/1.0'); //Setto la proprieta' content della classe con //il contenuto della risorsa remota $this->content = curl_exec($ch); //Chiudo la connessione e rilascio la risorsa curl_close($ch); } else { //Le librerie non sono installate: restituisco FALSE $this->content = FALSE; }
}
//Metodi Getters/Setters
public function getContent(){
return $this->content;
}
public function setContent($c){
$this->content = $c;
}
public function getUrl(){
return $this->url;
}
public function setUrl($c){
$this->url = $c;
}
}
?>e un file che si chiama
notizie.php:
include 'CRemoteFileReader.php';//URL da agganciare
$url_feed = "nomesito.com/notizie.xml";//Istanzio un oggetto RemoteFileReader
$rfR = new RemoteFileReader($url_feed);//Test delle librerie
if (! $rfR->getContent()) {
echo 'Librerie CURL non installate.';
exit;
}//Creo il DOM del documento XML per poi poter navigare al suo interno
$xml = new SimpleXMLElement($rfR->getContent());//Visualizzo il titolo del primo item
echo $xml->channel[0]->item[0]->title;
-
//Visualizzo SOLO il titolo del primo item
echo $xml->channel[0]->item[0]->title;Per visualizzare tutti i feed devi ciclare sugli item, e per ogni item visualizzare le proprietà che ti servono.
Ti ripeto,
hai tutto quello che ti serve.