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
429
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
Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa
En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod336204- 345693
- 293214
- 342534
- 442467
- 152208
- 372148
Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...
Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons401749En ole koskaan kokenut
Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka191727- 121721