limit = $limit;
$this->timestamps = array();
$this->resultSet = array();
$this->meta = array();
$this->xmlObject = @simplexml_load_file($url);
if($this->xmlObject == false) {
throw new Exception("Unable to get/parse data from $url"); //XML dataa ei kyetty jäsentämään
}
$this->parseData();
}
private static function parseTime($timeStr)
{
$month = array('Jan'=>1,'Feb'=>2,'Mar'=>3,'Apr'=>4,'May'=>5,'Jun'=>6,'Jul'=>7,'Aug'=>8,'Sep'=>9,'Oct'=>10,'Nov'=>11,'Dec'=>12);
$temp = sscanf($timeStr,"%s %d %s %d %d:%d:%d");
$temp[2] = $month[$temp[2]];
return mktime($temp[4],$temp[5],$temp[6],$temp[2],$temp[1],$temp[3]);
}
private function parseData()
{
$current = 0;
/* haetaan virran otsikko, kuvaus ja URL */
$this->meta[0] = utf8_decode($this->xmlObject->channel->title);
$this->meta[1] = (string)$this->xmlObject->channel->link;
$this->meta[2] = utf8_decode($this->xmlObject->channel->description);
/* käydään virtaa läpi kunnes raja tulee vastaa tai kaikki elementit on käyty läpi */
foreach($this->xmlObject->channel->item as $feedItem) {
$this->timestamps[] = $timestamp = self::parseTime($feedItem->pubDate);
$url = (string)$feedItem->link;
$title = utf8_decode((string)$feedItem->title);
$this->resultSet[] = array($timestamp,$url,$title);
if( $current > $this->limit)
break;
}
/* vapautetaan resursseja */
unset($this->xmlObject);
}
/* järjestää elementit kellonajan ja päivämäärän mukaan, joko nousevasti
* (RSSReader::sortASC) tai laskevasti (RSSReader::sortDESC)
*/
public function sort($order = self::sortDESC)
{
array_multisort($this->timestamps,$order,$this->resultSet);
}
public function getLink()
{
return $this->meta[1];
}
/* palauttaa RSS virran otsikon */
public function getTitle()
{
return $this->meta[0];
}
/* palauttaa RSS virran kuvauksen */
public function getDescription()
{
return $this->meta[2];
}
/* implementoidaan Iterator iteraattorissa määritelty metodin current() */
/* Palauttaa taulukon, joka sisältää data, johon iteraattori tällä hetkellä osoittaa */
public function current()
{
$res = array('timestamp' => $this->resultSet[$this->iterator][0],
'url' => $this->resultSet[$this->iterator][1],
'title' => $this->resultSet[$this->iterator][2]);
return array_merge($res,$this->resultSet[$this->iterator]);
}
/* implementoidaan Iterator iteraattorissa määritelty metodin next() */
/* siirrytään seuraavaan elementtiin */
public function next()
{
$this->iterator ;
}
/* implementoidaan Iterator iteraattorissa määritelty metodin key() */
public function key()
{
return $this->iterator;
}
/* implementoidaan Iterator iteraattorissa määritelty metodin rewind() */
/* siirrytään ensimmäiseen elementtiin */
public function rewind()
{
$this->iterator = 0;
}
/* implementoidaan Iterator iteraattorissa määritelty metodin valid() */
/* tutkitaan onko uusia elementtejä vielä jäljellä */
public function valid()
{
return ((count($this->resultSet) > $this->iterator) ? true : false);
}
}
/*ESIMERKKI:*/
$rss = new RSSReader("http://mureakuha.com/rss.php?stream=2");
$rss->sort(RSSReader::sortDESC);
echo 'getLink().'">'.$rss->getTitle().'';
foreach($rss as $item) {
printf('%s(%s)',$item['url'],$item['title'],date("d.m.Y H:i",$item['timestamp']));
}
Miten tästä koodista saa päivämäärän pois
# Yleistä Höpinää / "Mail for exchange" yhdistäminen toiseen palvelimeen?(26.10.2009 17:14)
Eli se näytää tuolla loppussa päivämäärän.Miten sen saa pois?
päivämäärä
net.php
2
446
Vastaukset
- keksa1
se päivämäärä sinne tungetaan.
Muuta se joksikin toiseksi esim.
printf('%s %s',$item['url'],$item['title']);
jos tulee jotai herjaa niin sitten lukemaan printf-metodin helppiä PHPn sivuilta.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Ihanasti alkoi aamu: SDP:n kaula kokoomukseen jo 6,9 %-yks
Lindtmanin I hallitus on tukevasti jytkyttämässä laittamaan Suomi kuntoon Orvon täystuhohallituksen jäljiltä, jonka kann4483069Teidän persujen pitäisi välillä miettiä kuinka Suomen talous saataisiin kuntoon
Ja lopettaa tuo tyhjänpäiväinen maahanmuuttajista höpöttäminen. Teillä on sentään rahaministerin salkku tällä kierroksel1372265- 1322093
Kuka omistaa entisen Veljeskodin?
Kenellä on varaa pitää hiljattain remontoitua rakennusta tyhjillään? Tehdäänkö siitä Suomen kallein kirpputori vai mikä71395Persut ei kestä heidän johtajistaan tehtyä huumoria
Laajalti tiedostettu tosiasia on, että autoritaariset johtajat ja erinäiset diktaattorit eivät kestä heidän kustannuksel281368Kaninkolojen vaikutus?
Vinkki sinkkumiehille: jos haluatte kunnollisen täysijärkisen naisen, niin kaivautukaa ulos kaninkoloistanne ja parantak2081334Martina ei mennyt naimisiin
IS 17.9: Martinan häät peruuntui, tajusi, ettei ollut oikea aika. Rahat meni hevosiin. On edelleen parisuhteessa Yhdysva1511273- 81086
- 571056
- 37795