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
424
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
Ja taas ammuttu kokkolassa
Kokkolaisilta pitäisi kerätä pois kaikki ampumaset, keittiöveitset ja kaikki mikä vähänkään paukku ja on terävä.605768- 1154980
Helena Koivu on äiti
Mitä hyötyä on Mikko Koivulla kohdella LASTENSA äitiä huonosti . Vie lapset tutuista ympyröistä pois . Lasten kodista.4042947Ovatko naiset lopettaneet sen vähäisenkin vaivannäön Tinderissa?
Meinaan vaan profiileja selatessa nykyään valtaosalla ei ole minkäänlaista kirjoitettua tekstiä siellä. Juuri ja juuri s961435Suomi vietiin Natoon väärin perustein. Viides artikla on hölynpölyä. Yksin jäämme.
Kuka vielä uskoo, että viides artikla takaa Suomelle avun, jos Suomeen hyökätään. Liikuttavasti täällä on uskottu ja ved3401129- 65971
- 29968
Sydämeni on sinun luona
Koko ajan. Oli ympärilläni ketä oli niin sinä olet vain ajatuksissa ja tunteissa. En halua muiden kosketusta kuin sinun46886Trump ja Venäjä
Huomasitteko muuten... Käytännössä ainoat valtiot, joille Trump EI eilen asettanut typeriä tariffejaan, olivat Venäjä ja109867Jatkuva stressitila
On sinun vuoksesi kun en tiedä missä mennään mutta tunteeni tiedän ainoastaan52839