Onko PHP:lla mahdollista hakea kuvaa joltain toiselta palvelimelta ja sitten tulostaa se? Yritän Google Chartin avulla hakea diagrammia osoitteesta, jossa on paljon muuttujia. PHP-tiedosto muodostaa osoitteen tietokantahakujen perusteella, ja sitten sen pitäisi tulostaa se kuva. En vain mitenkään keksi, miten se pitäisi toteuttaa :<
villev kirjoitti:
Onko PHP:lla mahdollista hakea kuvaa joltain toiselta palvelimelta ja sitten tulostaa se? Yritän Google Chartin avulla hakea diagrammia osoitteesta, jossa on paljon muuttujia. PHP-tiedosto muodostaa osoitteen tietokantahakujen perusteella, ja sitten sen pitäisi tulostaa se kuva.
Käsitinkö oikein? Muodostat tietokantahaun avulla URL:n Google Chart -kuvaan esim. http://chart.apis.google.com/chart?cht=lc&chs=200x125&chd=t:40,60,60,45,47,75,70,72 ja haluat näyttää sen sivun lukijalle. En käsitä miksi se kuva pitäisi ensin hakea PHP:llä ja sitten antaa käyttäjälle. Etkö voi vaan tulostaa img-tagia sopivalla src:llä?
Periaattessa idea on tuo, mutta haluaisin saada osoitteesta siistimmän (siitä voi muuten tulla todella pitkä...)
villev kirjoitti:
Periaattessa idea on tuo, mutta haluaisin saada osoitteesta siistimmän (siitä voi muuten tulla todella pitkä...)
En siltikään kierrättäisi liikennettä turhaan palvelimen kautta. Jos kuitenkin haluat tehdä niin, löytyy Googlen dokumentaatiosta siihen hyvät ohjeet. http://code.google.com/apis/chart/docs/
<?php // kuva.php $data = file_get_contents("http://chart.apis.google.com/chart?cht=lc&chs=200x125&chd=t:40,60,60,45,47,75,70,72"); header("Content-Type: image/png"); echo $data;
<img src="kuva.php" alt="" />
Ei sen kummempaa. Tällainen ratkaisu on kuitenkin aivan tyhmä, koska omalle palvelimellesi tulee ylimääräistä liikennettä. Mitä pitkä osoite haittaa, kun käyttäjä ei kuitenkaan näe sitä?
Siis jos halaut kuvan osoitteet kauniimmiksi ja niiden pitäminen omalla palvelimella onnistuu, on tässä yksi ratkaisu:
1. Kansio "main" tarkoittaa näissä ohjeissa sitä kansiota jossa on tiedostot jotka näkyvät kun sivullesi mennään.
2. Tee main kansioon kansio images (esim).
3. Lataa sinne kuva jonka nimi on vaikkapa pitkakuvannimitosipitajooeihirvea.jpg
4. Tee tiedosto .htaccess jossa on seuraava teksti:
RewriteEngine on RewriteRule ^kuvat/lyhytnimi.jpg /images/pitkakuvannimitosipitajooeihirvea.jpg
5. ÄLÄ LUO KANSIOTA "kuvat"
6. Tee main kansioon tiedosto "kuvatestaus.php" ja laita siihen seuraava koodi:
<img src="kuvat/lyhytnimi.jpg" alt="">
7. Katso kuvatestaus.php ja lähdekoodi. Polku jota ei oikeasti ole, on olemassa :D
------------------------------
Mikäli joku keksii tavan minkä avulla ei jokaista kuvaa tarvitse nimetä lisätä erikseen .htaccess tiedostoo, niin olisin iloinen kuulemaan siitä...
Ja nyt kannattaa muistaa, että kuvat eivät ole siis omalla palvelimella. Toi kuvien nimeäminen kannattaa kaiketi tehdä jonkun säännön mukaan, jotta tuosta edes teoriassa olisi hyötyä...
Jos nuo kuvaajat muuttuvat dynaamisesti useasti (useammin kuin kerran vuodessa), ja jos vielä näytät kuvia upotettuna <img>-tägillä, niin ketään ei kiinnosta, onko kuvien urli kolme kirjainta pitkä, vaiko sata merkkiä.
Eli kaikkien ongelmien välttämiseksi käytä suoraan vain Googlen tarjoamaa osoitemuotoa, jolloin kuvat eivät tallennu väärin käyttäjien välimuisteihin yms. vaan latautuvat aina oikein kuvaajan muuttuessa.
Jos kuvan osoitteen siistimisellä yritetään saavuttaa jotain, niin haluaisin tietää siitä lisää. Muussa tapauksessa tosiaan kannattaa vain upottaa kuva html-sivulle <img>-tägillä (esim. kuvaaja.php?d=2010-10-31, jonka voi myöhemmin mod_rewritella muuttaa sef-urliksi) ja jaella kuvan osoitteen sijaan sivun osoitetta kaikille halukkaille katselijoille.
edit:
Paratiisin poika: hienoa että juuri viime viikolla sinulle opetettiin rewritea, mutta toivoisin, että yrittäisit hieman sisäistää asiaa itsellesi, ennen kuin yrität opettaa ihmisille asiaa, josta sinullakaan ei selkeästi ole oikein vielä tietoa. Kiitos.
Oukei, kiitos vinkeistä. Taidan sittenkin varmaan vaan pistää sen osoitteen siihen suoraan :P
Jos haluat lyhyeksi, niin käytä vaikka dy.fi-palvelun linkinlyhennystä. Laitat inputtiin copypastella sen linkkisi, ja sitten enter.
Esimerkki:
http://chart.apis.google.com/chart?cht=lc&chs=200x125&chd=t:40,60,60,45,47,75,70,72 muuttuikin http://dy.fi/csz
Osoite muuttuu noin kuukauden välein, joten luulen että on kätevämpää vain lisätä kuva pitkällä osoitteella kuin tehdä tuo linkinlyhennys käsin.
villev kirjoitti:
Osoite muuttuu noin kuukauden välein, joten luulen että on kätevämpää vain lisätä kuva pitkällä osoitteella kuin tehdä tuo linkinlyhennys käsin.
Voihan sen tehdä automaattisesti linkin osoitteen vaihtuessa PHP:llä.
Mä veikkaan, että jos verrataan juuri osoitteita: http://chart.apis.google.com/chart?cht=lc&chs=200x125&chd=t:40,60,60,45,47,75,70,72 ja http://dy.fi/csz
niin jotenkin silti tuo ensimmäinen on kuvaavampi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.