Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Kuvan tulostus PHP:lla

Sivun loppuun

villev [29.10.2010 20:04:09]

#

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 :<

-tossu- [29.10.2010 20:53:39]

#

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ä?

villev [29.10.2010 21:31:36]

#

Periaattessa idea on tuo, mutta haluaisin saada osoitteesta siistimmän (siitä voi muuten tulla todella pitkä...)

-tossu- [29.10.2010 23:32:57]

#

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/post_requests.html

Metabolix [30.10.2010 00:24:25]

#

<?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ä?

Paratiisin poika [30.10.2010 11:47:38]

#

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ä...

Teuro [30.10.2010 19:32:52]

#

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ä...

Lebe80 [31.10.2010 10:56:11]

#

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.

villev [31.10.2010 15:50:02]

#

Oukei, kiitos vinkeistä. Taidan sittenkin varmaan vaan pistää sen osoitteen siihen suoraan :P

Macro [31.10.2010 16:36:50]

#

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

villev [31.10.2010 16:45:56]

#

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.

-tossu- [31.10.2010 18:39:24]

#

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ä.

Lebe80 [01.11.2010 09:14:57]

#

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.


Sivun alkuun

Vastaus

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

Tietoa sivustosta