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
485
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
Vihreiden, SDP:n ja Vasemmistoliiton kannattajista selvästi alle puolet on miehiä
ja silti joku punafeministi valitti kokoomuksen naiskannattajien puutteesta, vaikka siellä on enemmän naisia kuin punavi772578On tiedossa, että venäjämieliset diggaavat diktatuurista venäjää
jossa ei esim. ole sanan- ja lehdistönvapautta. Mutta keitä nämä venäjän palvojat sitten ovat, ei heitä toki paljon ole512570Ensin Henry Novak ja nyt sitten se Irlannin tapaus
jossa mustaihoinen afrikkalainen mieshenkilö puukottaa valkoihoista maassa makaavaa miestä useita kertoa pään alueelle.682513Belfastissa käynnissä kunnon persuilu
Joku random mamu tekee rikoksen, niin sikäläiset naamiopersut kostavat tuhoamalla kantaävestön omaisuutta. Liekö siellä732422Islamovasemmistolaisuus - tälläista termiä käytetään
Termi tarkoittaa alunperin äärivasemmiston ja muslimifundamentalistien liittoa, jonka ytimessä oli antisemitismi. Isl391947Persujen kannatusromahdus tekee kesästä 2026 nautinnollisen
Satoi tai paistoi, niin Suomen kansalaisella on kuluvana kesänä syytä hymyyn. Niin upealta tuntuu persujen kannatusroma1051769Julkista rahaa ei tule antaa senttiäkään yksityisille yrityksille
Julkinen raha on meidän yhteistä rahaa, ja se raha on tarkoitettu yhteiseen käyttöön, kuten esimerkiksi tuottamaan palve111277Martina Aitolehti läpäisi Erikoisjoukot - Tilittää umpirehellisenä kuvauksista
Martina Aitolehti selvisi Erikoisjoukot koulutuksesta. Hän myös malttoi pääosin pitää mölyt mahassaan, vaikka saikin ko271267Rakastan sinua hiljaisuudessa
Rakastan sinua hiljaisuudessa. Olisit minun tai et, olen odottanut sinua vuosisatojen ajan. Ilman sinua sydämeni on yksi411065Riikka runnoo! sähkön hinta +25 %, bensan hina +16 %
Euron bensa! Tuo legendaarinen persujen vaalilupaus. Sannan hallitus pudotti sähköenergan alv:n 10 prosenttiin, Riikka r71064