Elem, ja sam pocetnik u PHP ali sam spreman da naucim. PHP mi je prvi programski jezik koji ucim, tako da mi je trebalo i prilagodjavanje na sam nacin razmisljanja itd.
Ucio sam sintaksu, baratanje sa promenljivim vrednostima, operatore, petlje itd itd. Kako sam te osnove zavrsio, krenuo sam u mali projekat.
Projekat je sledeci: Sa sledece web strane https://www.notams.faa.gov/common/nat.html koja se svaki dan menja ja izvlacim samo delove koji su meni potrebni.
To nije bio problem, preg_match() je odradio posao i ja dobijem output ovaj:
A BALIX 61/20 63/30 65/40 65/50 64/60 KAGLY TEFFO
B GOMUP 59/20 61/30 62/40 62/50 60/60 PEPKI LOPVI
C DOGAL 53/20 51/30 49/40 47/50 RONPO COLOR
D MALOT 52/20 50/30 48/40 46/50 URTAK BANCS
E LIMRI 51/20 49/30 47/40 45/50 VODOR RAFIN
F DINIM 50/20 48/30 46/40 44/50 42/60 DOVEY
H BEDRA 48/20 46/30 44/40 42/50 SOORY
E sada, ovi brojevi predstavljaju geografsku duzinu i sirinu pa je npr 61/20 ustavi 61* severne geografske sirfine i 20* zapadne geografske duzine i tako dalje. Nadam se da razumete.
Ja treba da na .gif sliku Atlanskog okeana (http://aviationweather.gov/data/iffdp/2135.gif) uz pomoc PHP dodam prvo tackice koje ce se nalaziti tacno tamo gde treba na slici. Na primer, tackica 61/20 na slici treba da bude na slici na toj g.duzini i sirini.
A onda da napravim liniju koja ce da spaja te tacke.
Nije problem da ja to rucno uradim. Probao sam da za naprimer prvi, A, red to uradim. Prvo sam preko gotove PHP skripte rucno odredio X,Y koordinate za tacke na samoj slici i onda ih nacrtao
Kod ako neko zanima:
<?php
header('Content-type: image/gif;');
$image=imagecreatefromgif('http://aviationweather.gov/data/iffdp/2135.gif');
imagesetthickness($image,10);
// boja kruga
$ellipseColor = imagecolorallocate($image, 0, 0, 255);
// crtamo krugove za track A *
imagefilledellipse($image, 1163, 569, 25, 25, $ellipseColor);
imagefilledellipse($image, 1047, 507, 25, 25, $ellipseColor);
imagefilledellipse($image, 959, 405, 25, 25, $ellipseColor);
imagefilledellipse($image, 852, 382, 25, 25, $ellipseColor);
imagefilledellipse($image, 753, 329, 25, 25, $ellipseColor);
//crtamo linije da poovezuju tacke
imageline($image,1163, 569, 1047, 507, $ellipseColor);
imageline($image,1047, 507, 959, 405, $ellipseColor);
imageline($image,959, 405, 852, 382, $ellipseColor);
imageline($image,852, 382, 753, 329, $ellipseColor);
imagegif($image);
?>
To izgleda ovako onda: http://i.imgur.com/lcSRQ.jpg (slikano iz browsera, sve je u PHP nacrtano)
Nije problem napraviti ovo za jedan red, ali kad ih imam vise od 10 i oni se dnevno menjaju to vec predstavlja problem. Zbog toga sam se odlucio za sledecu varijantu. Posto drugi broj, odnosno geografska duzina, moze da ima samo 5 vrednosti: 20, 30, 40, 50, 60, a geograska sirina oko 30 vrednosti, od 40 stepeni geograske sirine do 70 stepeni geograske sirine, odlucio sam da napravim fajl koji ce sadrzati sve moguce kombinacije i njihove koordinate. Fajl bi tako sadrzao X, Y koordinate za 40/20, 41/20, 42/20 itd itd. A onda bih pokusao da uporedim vrednosti dobijene sa preg_match() i iscrtam to na slici. Cime bi mogao da uporedim te vrednosti? foreach() mozda? Ovde bi mi trebala vasa pomoc ako moze.
Da li mozda postoji neka bolja varijanta da se ovo odradi?
Zeleo bih vase savete posto ste svi dosta iskusniji.
Valjda sam ispostovao pravila foruma, ne trazim da mi neko ceo kod ispise, svoj domaci sam uradio, vec da dobijem savet, da li sma na dobrom putu i uopste vase ideje.
Hvala!: )
EDIT: Evo i preg_match() dela koda. U odvojenom, nat.php fajlu.
$nat=file('https://www.notams.faa.gov/common/nat.html');
foreach ($nat as $line)
{
if(preg_match("/[A-F]{1} [A-Z ]*[0-9]{2}\/[0-9]{2} [0-9]{2}\/[0-9]{2} [A-Z0-9\/ ]*/", $line)>0)
{
echo $line."<br>";
}
}
?>
[Ovu poruku je menjao batro dana 23.04.2012. u 12:52 GMT+1]
[Ovu poruku je menjao batro dana 23.04.2012. u 12:54 GMT+1]