Etsitkö helppolukuista ja esteetöntä versiota? Sen löydät tästä linkistä, tai kirjoittamalla osoitteen perään ?esteeton. Tämä viesti ei näy jos tyylitiedosto on sallittu selaimessasi.

Uusimmat tweetit

Viimeisin sijaintini

Hae Rollemaasta

Kirjautuminen

Rollemaa muualla

Yksinkertainen kuvacache leffasivulle

Jälleen kerran googletin php-scriptiini ratkaisua, mutta en löytänyt – päätin siis koodata itse. En ole edelleenkään kovin kaksinen php:ssa, mutta pääsen usein aina määränpäähäni pienellä vaivalla. Tällä kertaa halusin koodata cachen leffasivuni postereille. Cachehan tässä tapauksessa tarkoittaa lyhesti sitä, että Movieposterdb.comin kuvat latautuvat palvelimelta Rollemaa.orgin palvelimelle ja jatkossa latautuvat Rollemaan palvelimelta, eivät Movieposterdb:n palvelimelta. Näin nopeutuu kansikuvien latautuminen ja paranee sivun toimivuus (sillä kyseinen tietokantasivusto tuppaa olemaan melko usein alhaalla).

Sitten itse koodiin. En tosiaan saanut googlesta mitään apua, sillä löysin aina vain monimutkaisempia cache-systeemejä. Tahdoin mahdollisimman simppelin, joten päätin koodata sellaisen itse. Leffasivulleni lisätään leffat imdb:n tietokantaa hyväksi käyttäen. Imdb:stä haetaan automaattisesti leffan nimi ja muut tiedot. Näin ollen myös kansitaiteet menevät elokuvan IMDbID:n mukaan (tuo 7-numeroinen luku jokaisen elokuvan linkissä). IMDb on muutenkin hyvä paikka elokuvien tietojen selaamiseen.

Muistathan, että muuttujat voivat olla millä nimellä tahansa. Minun muuttujieni nimet ovat yleensä aika hölmöjä. Koita olla välittämättä.
<?php

//Ensin määrätään paikallinen tiedosto. Leffaid on määritetty jo aiemmin.
$paikallinen_tiedosto = ‘/home/tunnus/public_html/leffahaku/poster-image-db/’ .$leffaid[0]. ‘.jpg’;
//Jos tiedosto on olemassa jo Rollemaan palvelimella, ei tehdä mitään.
if (file_exists($paikallinen_tiedosto)) {
echo ”;
//Jos tiedostoa ei ole…
} else {
//Haetaan kuvascriptin osoite.
$urlipurli = file (‘tähän osoite’);

//Tässä kohtaa pilkoin kuvascriptin palasiksi, jotta sain sivulta javascriptin seasta posterin osoitteen (sivusto käyttää javascriptiä, kun eivät halua että ihmiset suoralinkittävät postereita sivuilleen). En julkaise koodia tässä, koska en tiedä onko oikein tehdä näin.
[pilkkomiskoodia]
}

//Määritetään kuvan lopullinen osoite, kun se on saatu pilkkomalla selville kuvascriptistä.
$kuvan_osoite = $tulos_ulos[0].’.jpg’;

//Kopioidaan kuva etäpalvelimelta omalle palvelimelle.
copy($kuvan_osoite, $paikallinen_tiedosto);
}

//Ja vihdoin näytetään posteri omalta palvelimelta.
echo ‘<div class=”movieposter”><img src=”http://rollemaa.org/leffahaku/poster-image-db/’ .$leffaid[0]. ‘.jpg” alt=”" /></div>’;

?>

Sellaista koodailua tällä kertaa. Pyydän, ettet kommentoisi koodia, sillä tiedän että tämän saisi tehtyä paremmallakin tavalla. Ratkaisu on kuitenkin tarpeeksi toimiva ja nopea minulle.

Aiheeseen mahdollisesti liittyvää:

Kirjoittaja on 23-vuotias viittomakielinen elämäntapanörtti, noin 10 tietokoneen omistaja, Linux- ja Android-käyttäjä, hevimies, naimisissa kuurosokean kanssa. Harrastukset ammattina. Harrastaa myös kirjoittamista ja elokuvia suurehkossa mittakaavassa. Lisää tietoa →

2 kommenttia. Lisää omasi joukkoon?

  1. Hanki oma gravatar-kuvake.

    Tuohan on ihan riittävä ja tarpeeksi yksinkertainen. Samoin minä teen muidenkin kuva_hommien kanssa, esim thumbnaileja on turha tehdä uusiksi, mikäli tiedosto jo löytyy.

    Periaatteessa tuo ei tarvitsisi elseä ollenkaan,
    if( !file_exists(

    1 Kirjoitti: Tomi, 2 vuotta, 6 kuukautta sitten

  2. Hanki oma gravatar-kuvake.

    Tomi: Kiitos kommentista, ja vinkistä! Googlettamalla löytyi jotain ihmeellisiä ajastettuja cacheja, eli tiedostot tietyn väliajoin haetaan uusiksi. Minusta tämä on melko tyhmää ainakin tässä tapauksessa, sillä kuva on jo ensimmäisellä kerralla hyvä – turha sitä on lähteä uudestaan hakemaan. Tietty jos joskus tarvitsee kuvan “päivittää” niin poistaa vain tiedoston omalta palvelimelta…

    2 Kirjoitti: rolle, 2 vuotta, 6 kuukautta sitten

Lisää oma kommentti

Tekstin muotoilu Vinkki: toimii myös kun maalaat tekstin!




Rollemaata tilaa yhteensä 106 lukijaa. Lue lisää.

Admin