Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP & RSS Aikahaku 2: Optimointi

hevonen [25.06.2008 01:46:13]

#

Ongelma:
Järjestää RSS syötteet niin kuin ampparit.com:issa eli kategoriat olisivat 5min, 15min, 30min, 1h, 2h, 4h, 12h ja 24h.

Alustus:
pegin koodi tässä keskustelussa https://www.ohjelmointiputka.net/keskustelu/17406-php-aikahaku

Pegin koodissa on tämä komento:

foreach($rss1a as $item) {
    printf('%s | <a href="%s">%s</a> helsingin sanomat <br>'.("\n"),/*date($item['timestamp']).' | '.*/date(" H:i",$item['timestamp']),$item['url'],$item['title']);
}

josta olen mitätöinyt tämän date($item['timestamp']).' | '..

Koodi tuon pienen muutoksen jälkeen näyttää samalta kuin täällä http://62.44.216.148/linkit/testiu.php

Nuo syötteet luultavasti voidaan järjestää aikakategoroihin tällä parametrillä date($item['timestamp'].
Mutta miten tuota parametria käyttäen syötteet voidaan järjestää aikakategoroihin? Ehkä jollain funktiolla?

Merri [25.06.2008 12:28:34]

#

Jätän tähän sinulle hieman pohdinnan varaa sen suhteen, miten saat lopullisen tulostuksen tehtyä. Tämä ei välttämättä ole paras tapa toteuttaa systeemiä, mutta pitäisi kuitenkin olla toimiva (joskaan en testaillut).

$times = array(
    array(0, '5 min'),
    array(5, '15 min'),
    array(15, '30 min'),
    array(30, '1 tunti'),
    array(60, '2 tuntia'),
    array(120, '4 tuntia'),
    array(240, '12 tuntia'),
    array(720, '24 tuntia'),
    array(1440, 'Yli 24 tuntia')
);

$curtime = 0;

foreach($rss1a as $item) {
    while( $times[$curtime + 1][0] > 0 && $times[$curtime + 1][0] >= date('n', time() - $item['timestamp']) ) {
        $curtime++;
    }
    printf('%s | <a href="%s">%s</a> helsingin sanomat <br>'.("\n"),/*date($item['timestamp']).' | '.*/date(" H:i",$item['timestamp']),$item['url'],$item['title']);
}

hevonen [25.06.2008 17:03:26]

#

Kiitos!
Tuo on hyvä alku. Nyt pohdin sitä, että miksi nuo otsikot eivät tulostu ollenkaan. Yllätyksenä minulle listaan ei tullut mitään eroa. Ehkä koodisssa on jokin pieni bugi. Ilmoitan siitä, jos löydän sen.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta