Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: viikkolinkki

Sivun loppuun

fivestar [10.02.2003 21:29:39]

#

Eli oon PHP:n kanssa vielä alottelija ja nyt tarvisin viisaampien neuvoa. Tarkotus olis tehdä nettisivuille "Viikon linkki" osio, jossa olis joka viikko eri linkki. Ne linkit luettais tiedostosta aina oikeen viikon kohdalta. Ja sitte siihen vois laittaa sellasen lisäominaisuuden, että halutessaan voi nähdä kaikki aikasemmat linkit. Oon koittanu itte tehdä tota, mutta eihän siitä mun tän hetkisillä taidoilla mitään tullu. Ja sitte joku perkeleen nörtti oli menny lainaan kirjaston ainoon PHP kirjan ja palautuspäivään on vielä pari viikkoo. Mähän itse en tietenkään oo nörtti, mää oon vaan "tietotekniikasta kiinnostunut", tai jotain. Mut joka tapauksessa, jos joku nyt vois auttaa, ku ei luulis olevan kovin vaikee temppu.

trinit [11.02.2003 17:38:44]

#

lainaus:

Oon koittanu itte tehdä tota, mutta eihän siitä mun tän hetkisillä taidoilla mitään tullu.

Siis oletko jo saanut jotain aikaseksi vai onko lähtöasetelma vielä aivan alussa koodin suhteen? No kuitenkin, linkit kannatanee tallentaa johonkin tiedostoon vaikka näin (tiedoston nimi linkit.txt):

5|http://www.mbnet.fi
6|http://www.nokia.fi
7|https://www.ohjelmointiputka.net
8|http://www.google.fi

jossa ensimmäinen luku on viikon numero ja sen jälkeen tulee erotinmerkki "|" ja sitten linkin osoite. Ne luetaan ja näytetään sivulla esimerkiksi:

<?php
    $viikko = date("W");
    $ff = file("linkit.txt");

    for ($i = 0; $i < count($ff); $i++)
    {
        $tiedot = explode("|", trim($ff[$i]));
        if ($tiedot[0] == $viikko)
        {
            echo "Tämän viikon linkki on: <a href='" . $tiedot[1] . "'>" . $tiedot[1] . "</a><br>\n";
        }

        if ($tiedot[0] < $viikko)
        {
            echo "Viikon " . $tiedot[0] . " linkki oli: <a href='" . $tiedot[1] . "'>" . $tiedot[1] . "</a><br>\n";
        }
    }
?>

edit: Laaksonen jos luet tämän niin sisennykset eivät näytä toimivan php-kooditagin sisällä nyt.
edit2: Koodi testattu ja havaittu toimivaksi :)

Antti Laaksonen [11.02.2003 17:58:12]

#

Jos käytät vähän vanhempaa versiota PHP:stä, tuo date("W") ei ehkä toimi. Tällöin viikon selvittäminen onnistuu jotenkin näin:

<?php
$viikko = intval((date("z") + 2) / 7) + 1;
?>

lainaus:

Mähän itse en tietenkään oo nörtti, mää oon vaan "tietotekniikasta kiinnostunut", tai jotain.

Onko se nörttiys nyt niin häpeällinen asia? :)

lainaus:

edit: Laaksonen jos luet tämän niin sisennykset eivät näytä toimivan php-kooditagin sisällä nyt.

Nyt toimii taas.

trinit [11.02.2003 18:04:53]

#

lainaus:

Nyt toimii taas.

Vai niin, onkohan nyt minulla jotain ongelmia kun koodi ei edelleenkään sisenny? Kokeilin myös IE 6:lla ja Opera 7:lla mutta ei mitään vaikutusta. Näkyy samanlailla kuin Mozilla:lla...

edit: No nyt toimii taas. Meni taas offtopiciksi...

fivestar [11.02.2003 19:24:05]

#

Kiitoksia koodista! Mutta... se ei ollu ihan sitä mitä hain. Tarkotin, että ne edellisten viikkojen linkit sais halutessaan näkyviin. Siis kun toi tän viikon linkki tulee etusivulle niin sen linkin alla olis teksti "Edelliset" ja siitä pääsis erilliselle sivulle jossa näkis sitte ne edellisten viikkojen linkit.

fivestar [11.02.2003 19:45:18]

#

Komento takas! Osasin ihan itte tehdä siihen sen edellisten viikkojen näyttö systeemin. Mutta ettei elämästä tulis tylsää, niin miten tohon sais jokaisen linkin yhteyteen pienen kommentoinnin. Siis kirjottaisin jokaisesta linkistä jonkun lyhyen kuvauksen. Voisko sen tehdä sillai, että se ohjelma poimii sen linkin jälkeen olevat kolme riviä ja näyttää ne siinä linkit yhteydessä? Vai miten?

trinit [11.02.2003 20:02:10]

#

lainaus:

...linkin yhteyteen pienen kommentoinnin...

Helpoimmin onnistuu kun lisäät kommentin samalle riville missä viikonnumero ja osoitekin on. Tein hieman muokatun version omasta esimerkistäni:

5|MBnet|http://www.mbnet.fi
6|Nokian kotisivu|http://www.nokia.fi
7|Suomalainen ohjelmointisivusto|https://www.ohjelmointiputka.net
8|Hyvä hakukone|http://www.google.fi

ja itse koodi:

<?php
    $viikko = date("W");
    $ff = file("linkit.txt");

    for ($i = 0; $i < count($ff); $i++)
    {
        $tiedot = explode("|", trim($ff[$i]));
        if ($tiedot[0] == $viikko)
        {
            echo "Tämän viikon linkki on: <a href='" . $tiedot[2] . "'>" . $tiedot[2] . "</a><br>\n";
            echo "Kuvaus: <i>" . $tiedot[1] . "</i><br>\n";
        }

        if ($tiedot[0] < $viikko)
        {
            echo "Viikon " . $tiedot[0] . " linkki oli: <a href='" . $tiedot[2] . "'>" . $tiedot[2] . "</a><br>\n";
            echo "Kuvaus: <i>" . $tiedot[1] . "</i><br>\n";
        }
    }
?>

Kannattaa tutustua PHP:n explode() funktion toimintaan. Erittäin kätevä mielestäni.

fivestar [12.02.2003 20:55:35]

#

Vielä yks tyhmä kysymys. Kuinka tohon päivän linkin tulostukseen saa määriteltyä fontin koon ja värin. Esimerkiks koko:10 ja väri: punainen. Mää koitin itte laittaa, mutta joko se määritys ei tuonu mitään muutosta tai sitte se määritys lisättiin siihen linkin osotteeseen.

trinit [12.02.2003 21:00:08]

#

lainaus:

Vielä yks tyhmä kysymys. Kuinka tohon päivän linkin tulostukseen saa määriteltyä fontin koon ja värin. Esimerkiks koko:10 ja väri: punainen.

Jos <font> tageilla sen haluat tehdä niin ihan samanlailla ne sinne laitetaan kuin muutkin tagit (echo-riveille siis):

<?php
...

echo "<font color='#ff0000' size=10>Viikon " . $tiedot[0] . " linkki oli: <a href='" . $tiedot[2] . "'>" . $tiedot[2] . </a></font><br>\n";

...

echo "<font color='#ff0000' size=10>Kuvaus: <i>" . $tiedot[1] . </i></font><br>\n";

...

?>

edit: kirjoitusvirheitä...
edit2: tuo warning-teksti ei sitten ole minun kirjoittamani


Sivun alkuun

Vastaus

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

Tietoa sivustosta