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
487
Vastaukset 2
- 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
- 2261943
Nanna hakkasi Martinan aivot tuusan nuuskaksi!!!
Ihme jos Martina pystyy muodostaa järkeviä lauseita tämän nyrkkisateen jälkeen. Ottelupalkkio tuli, tajunta meni.2601144- 20985
Vaikea löytää samantyylistä miestä
Nyt on pakko avautua. Onko ketään muuta jonka on yksinkertaisesti todella vaikeaa löytää samanhenkistä kumppania kuin i125686- 37656
Martina ja Muhis
Aamulenkillä yhdessä valmistautumassa suuren päivään,toivottavasti heräsivät toistensa viekusta.Ihana pariskunta❤222648Rasismi ahdistaa.
Tapasin baarissa oikein lupsakan oloisen miehen, mutta arvomaailma on hyvin erilainen omani kanssa. Hän käyttää n-sanaa201587- 38418
- 50418
Olenkohan tunteideni kanssa yksin?
Salaa toivon, että sinä nainen luotat minuun niin paljon, että uskaltaisit lähentyä kanssani, vaikka tämä on vähän kiell42402