PHP 4 Tworzenie stron WWW cwiczenia praktyczne 2

background image

5R]G]LDã*UDILNDZ3+3

103

52='=,$â

*UDILNDZ3+3

%\üPR*H]DVWDQDZLDV]VLF]\PUy*QLVLJUDILNDZ3+3RGJUDILNLZ]Z\Ná\P+70/-u.

7ZRU]FVWURQ\:::QDSHZQRRSDWU\ZDáHMHLOXVWUDFMDPLD]QDF]QLN

IMG

i jego atrybuty

]SHZQRFLQLHV&LREFH'RP\ODV]VLWDN*H*HXPLeszczenie znacznika

IMG

w danych

Z\SLV\ZDQ\FK SU]H] VNU\SW 3+3 ]DRZRFXMH LOXVWUDFM QD RGSRZLHGQLP PLHMVFX VWURQ\

:::3RFRZLFWHPDWRZLSRZLFDüFDá\UR]G]LDá"
2GSRZLHG(QLHMHVWVNRPSOLNRZDQD1LHEG]LHP\]DMPRZDüVLWXWDMVWDW\F]QJUDILNGo-

áF]DQGRGRNXPHQWyZ+70/]SOLNyZz ilustracjami. Natomiast omówimy w tym roz-
dziale dynamiczne

WZRU]HQLHLOXVWUDFMLSU]H]VNU\SWG]LDáDMF\QDVHUZerze.

àDWZRVLGRP\OLüMDNLHWRQLHVLH]DVREPR*OLZRFL%G]LHPR*QDLOXVWURZDüUy*QHLn-
formac

MHJUDILNDPLQDSRGVWDZLH]HEUDQ\FKGDQ\FK1LHWU]HEDZW\PFHOXWZRU]\üZLHOX

LOXVWUDFMLLZ\ELHUDüWDNLHMNWyUD&LRGSRZLDGD3RSURVWXXWZRU]\V]MVRELHDUDF]HMX*\t-

NRZQLNRZLZF]DVLHU]HF]\ZLVW\PF]\OLZWHG\JG\EG]LHSRWU]HEQD

Zacznijmy od p

RND]DQLD*HWRMHVWEDUG]RáDWZH3RPR*HQDPZW\PSRQL*V]HüZLF]HQLH

ýZLF]HQLH

8WZyU]SURJUDPNWyU\SU]\JRWXMHLZ\ZLHWOLLOXVWUDFMZIRUPDFLH-3*3RVWDUDMVLDE\

E\áDWRELDáDNUDWNDQDF]DUQ\PWOHRUR]PLDUDFK[

Nie bardzo wiado

PRMDNVL]DEUDüGRWDNLHJR]DGDQLDDW\PF]DVHPJG\]QDP\PHWRG

MHVWWREDUG]RáDWZH3U]\JRWRZDQLHLZ\ZLHWOHQLHLOXVWUDFMLRGE\ZDVLZNLONXHWDSDFK
1DOH*\Z\ZLHWOLüQDJáyZHNGRNXPHQWXZáDFLZ\GODIRUPDWXJUDILNL:SU]\SDGNXJUDIi-
ki JPG jest to:

Content-type: image/jpeg

Pomaga w tym funkcja

header

.

KHDGHU

3U]HV\áDQDJáyZHNRNUHORQ\MDNRSDUDPHWU

1DVWSQLHQDOH*\XWZRU]\üU\VXQHNX*\ZDMFIXQNFML

createimage

. Funkcja ta zwraca zmien-

QNWyUDMHVWMHJRLGHQW\ILNDWRUHP

background image

3+3²þZLF]HQLDSUDNW\F]QH

104

LPDJHFUHDWH

Tworzy rysunek. Par

DPHWU\RNUHODMMHJRUR]PLDU

w

SLNVHODFKDIXQNFMD]ZUDFD]PLHQQEGFMHJR

identyfikatorem.

:VSyáU]GQHLOXVWUDFMLVOLF]RQHRGOHZHJRJyUQHJRURJX3LHUZV]DZVSyáU]GQDGRW\F]\
osi poziomej, a druga – pionowej.

Na tak utworzonej i

OXVWUDFML PR*HP\ GRNRQ\ZDü SU]HUy*Q\FK RSHUDFML : W\P üZLF]HQLX

X*\MHP\WU]HFKGHILQLRZDQLDNRORUyZZ\SHáQLHQLDNRORUHPRUD]U\VRZDQLDOLQLL

LPDJHFRORUDOORFDWH

Definiowanie koloru dla rysunku. Kolejnymi argumen-

WDPLV]PLHQQDEGFDLGHQW\ILNDWRUHPrysunku oraz

VNáDGRZHNRORUX5*L%RGGR)XQNFMD]ZUa-
ca identyfikator koloru.

LPDJHILOO

:\SHáQLHQLHU\VXQNXLGHQW\ILNDWRUMHVWSLHUZV]\P

DUJXPHQWHPNRORUHPVWDQRZLF\PF]ZDUW\DUJXPHQW

'UXJLLWU]HFLDUJXPHQWWRZVSyáU]GQHRGNWyU\FK
ro

]SRF]\QDVLZ\SHáQLDQLHREV]DUXMDNRREV]DUUR]u-

PLDQHVSLNVHOHMHGQHJRNRORUXDMDNLNROZLHNLQQ\
kolor stanowi brzeg).

LPDJHOLQH

W rysunku, którego identyfikator jest pierwszym argu-

PHQWHPU\VXMHOLQLRZVSyáU]GQ\FKSRF]WNXLNRFD
podanych w kolejnych czterech parametrach. Kolor linii

MHVWRNUHORQ\V]yVW\PSDUDPHWUHP

:\ZLHWOHQLHSU]\JRWRZDQHMLOXVWUDFMLZIRUPDFLH-3*MHVWUHDOL]RZDQHSU]H]IXQNFM

imagejpeg

.

,VWQLHMWDN*HIXQNFMHZ\ZLHWODMFHLOXVWUDFMHZLQQ\FKIRUPDWDFK3DPLWDM*HPXsisz za-

FKRZDü]JRGQRüZ\V\áDQHJRQDJáyZNDGRNXPHQWX]IRUPDWHPU\VXQNX

LPDJHMSJ

:\ZLHWOHQLHLOXVWUDFMLZIRUPDFLH-3*$UJXPHQW
funkcji jest identyfikatorem ilustracji.

LPDJHJLI

:\ZLHWOHQLHLOXVWUDFMLZIRUPDFLH*,)$UJXPHQW
funkcji jest identyfikatorem ilustracji.

LPDJHSQJ

:\ZLHWOHQLHLOXVWUDFMLZIRUPDFLH31*$UJXPHQW
funkcji jest identyfikatorem ilustracji.

&DáRüSURJUDPXSU]HGVWDZLDVLQDVWSXMFR

SKS

<?

3URJUDPWZRU]\LOXVWUDFM]ELDáNUDWNQDF]DUQ\PWOH


header("Content-type: image/jpeg");

$rysunek = imagecreate (100,100);

$kolorbialy = imagecolorallocate ($rysunek, 255, 255, 255);
$kolorczarny = imagecolorallocate ($rysunek, 0, 0, 0);

imagefill ($rysunek, 0, 0, $kolorczarny);

for ($i=1; $i<10; $i++) {

background image

5R]G]LDã*UDILNDZ3+3

105

imageline ($rysunek, 10*$i, 0, 10*$i, 100, $kolorbialy);
imageline ($rysunek, 0, 10*$i, 100, 10*$i, $kolorbialy);
}

imagejpeg ($rysunek);
?>

(IHNWHPG]LDáDQLDMHVWU\VXQHNZIRUPDFLH-3*RZ\PLDUDFK[SU]HGVWDZLDMF\V]a-

FKRZQLF

5\VXQHN:\QLNG]LDáDQLDVNU\SWX– kratkowany JPG

-H*HOL Z SURJUDPLH SRSHáQLáH EáG QLH ]REDF]\V] LQIRUPDFML R W\P Z RNQLH SU]HJOGDUNL

ZV]DNQDJáyZHNNWyU\]RVWDáGRQLHMSRVáDQ\WRQDJáyZHNJUDILF]Q\DQLHWHNVWRZ\-e*e-

OLLOXVWUDFMDNWyUFKFHV]Z\ZLHWOLüQLHSRMDZLVLVSUZDG((UyGáRVWURQ\-H*HOLSURJUDP

Z\JHQHURZDáMDNLNRPXQLNDWREáG]LHWDPQDSHZQRJR]QDMG]LHV]
0R*QD]DGDüS\WDQLHGODF]HJRGRSURVWHJRGZXNRORURZHJRU\VXQNX]DVWRVRZDOLP\IRr-

PDW-3*DQLH*,)7HQGUXJL]DSHZQLáE\SUDZGRSRGREQLHPQLHMV]\SOLNLEUDNVWUDWSRd-

F]DVNRPSUHVML7RSUDZGD-HVWMHGQDNSHZLHQSUREOHP-H*HOLPDV]]DLQVWDORZDQ\SDNLHW
PHPTriad, prawdopod

REQLH QLH REVáXJXMH RQ IRUPDWX *,) 1LH ZLHU]\V]" =DPLH Z So-

SU]HGQLPüZLF]HQLXZLHUV]ZyZLHWODMF\QDJáyZHNQD

header("Content-type: image/gif");

RUD]]PLHSROHFHQLHZ\ZLHWOHQLDQD

imagegif ($rysunek);

-H*HOLLOXVWUDFMDQLHZ\ZLHWOLVLSRSUDZQLHVSUDZG((UyGáRVWURQ\DZV]\VWNRVWDQLHVLMa-

VQH7DZHUVMDELEOLRWHNL*'VáX*FHMGRPDQLSXORZDQLDU\VXQNDPLNWyUHMX*\ZDV]QLH
posiada ob

VáXJLIRUPDWX*,)

-H*HOLNRU]\VWDV]]SXEOLF]QHJRVHUZHUD:::]REVáXJ3+3SUDZGRSRGREQLHGRVWDZFD

XVáXJUR]ZL]DáWHQSUREOHP]D&LHELH-HOLMHGQDNZ\NRQXMHV]üZLF]HQLDQDZáDVQ\PVHr-

ZHU]HSRGNRQWUROV\VWHPX:LQGRZVSUDZGRSRGREQLHSRMDZLVLPDá\NáRSRW
*G\E\QLHGDáRVLWHJRSUREOHPXUR]ZL]DüE\áDE\WRWUDJHGLD)RUPDW31*QLHMHVWMHVz-

F]HZ\VWDUF]DMFo rozpowszechniony, a JPG posiada swoje ograniczenia. W niektórych sy-

WXDFMDFKWDNVLVNáDGDZSU]\SDGNXJHQHURZDQLDJUDILNLSRVWURQLHVHUZHUDG]LHMHVLWDN

QDMF]FLHMLVWQLHMHSRWU]HEDZ\NRU]\VWDQLDIRUPDWX*,)

background image

3+3²þZLF]HQLDSUDNW\F]QH

106

1DV]F]FLHGDZQLHMELEOLRWHND*'obsáXJLZDáDIRUPDW*,):\VWDUF]\ZLFWZHUVMNWó-

U G\VSRQXMHV] ]DVWSLü RGSRZLHGQL 2GSRZLHGQL ZHUVM GOD :LQGRZV ]QDMG]LHV] SRG
adresem:

http://aki.a4.pl/ksiazki/cwphp4/php_gd_gif_404.zip

(158 kB).

FLJQLW\ SOLN PXVLV] UR]SDNRZDü D QDVWSQLH SOLN php_gd.dll VNRSLRZDü GR NDWDORJX
php\extensions

VZRMHMLQVWDODFMLDZLF]DSHZQHGRc:\apache\php\extensions). Plik, który

PLDáHZW\PNDWDORJXGRWHMSRU\QDZV]HONLZ\SDGHNQDMSLHUZ]Drchiwizuj.
2GWHJRPRPHQWXSRZLQLHQHEH]SUREOHPXWZRU]\üLZ\ZLHWODüWDN*HLOXVWUDFMHZIRUPa-

FLH*,)6SUDZG]LP\F]\WDNVLVWDáRZQDVWSQ\PüZLF]HQLX

ýZLF]HQLH

8WZyU] SRGREQ V]DFKRZQLF MDN Z üZLF]HQLX *UDILN Z\ZLHWO Z IRUPDFLH *,F,
a

ND*GHSROHV]DFKRZQLF\Z\SHáQLMORVRZ\PNRORUHP

:SWOLGODND*GHJR]HSyOV]DFKRZQLF\EG]LHP\ORVRZDüNRORU-H*HOLFKFHP\E\

ZDUWRüND*GHM]HVNáDGRZ\FK]DZLHUDáDVLZSU]HG]LDOH

Z\ZRáDQLHIXQNFMLSRZLn-

QRPLHüQDVWSXMFSRVWDü

imagecolorallocate ($rysunek, rand()%256, rand()%256, rand()%256);

1LHQDOH*\]DSRPLQDüR]DLQLFMRZDQLXJHQHUDWRUDOLF]ESVHXGRORVRZ\FKIXQNFM

srand

.

SKS

<?

3URJUDPWZRU]\LOXVWUDFM]ELDáNUDWN.D*GHSROH

MHVWZ\SHáQLRQHORVRZ\PNRORUH

m.


header("Content-type: image/gif");
$rysunek = imagecreate (100,100);

$kolorbialy = imagecolorallocate ($rysunek, 255, 255, 255);
$kolorczarny = imagecolorallocate ($rysunek, 0, 0, 0);
imagefill ($rysunek, 0, 0, $kolorczarny);

for ($i=1; $i<10; $i++) {
imageline ($rysunek, 10*$i, 0, 10*$i, 100, $kolorbialy);
imageline ($rysunek, 0, 10*$i, 100, 10*$i, $kolorbialy);
}

srand(time());
for ($x=0; $x<10; $x++) {
for ($y=0; $y<10; $y++) {
$kolorlosowy = imagecolorallocate
($rysunek, rand()%256, rand()%256, rand()%256);
imagefill ($rysunek, 5+$x*10, 5+$y*10, $kolorlosowy);
}
}
imagegif ($rysunek);
?>

:\SHáQLHQLHND*GHJRSRODUHDOL]XMHP\IXQNFM

imagefill

.RORUMHVWRF]\ZLFLHW\PZ\EUa-

Q\PORVRZRZND*G\PSU]HELHJXSWOL-DNRPLHMVFHRGNWyUHJRQDOH*\UR]SRF]üZ\SHá

QLDQLH Z\ELHUDP\ OH*F\ PQLHM ZLFHM Z URGNX ND*GHJR ] SyO SXQNW R ZVSyáU]GQ\FK
(

5+$x*10, 5+$y*10

), gdzie

$x

i

$y

VRGSRZLHGQLPLQXPHUDPLZSLRQLHLSR]iomie danego pola

(liczonymi od 0).

background image

5R]G]LDã*UDILNDZ3+3

107

(IHNWG]LDáDQLDSURJUDPXSU]HGVWDZLDSRQL*V]DLOXVWUDFMDNWyUD]SHZQRFLWUDFLQDHIHk-

WRZQRFL]SRZodu braku kolorów.

Rysunek 5.2. Szachow

QLFDZ\SHáQLRQDORVRZ\PLNRORUDPL

=DXZD**HZQDJáyZNX]RVWDáSRGDQ\RGSRZLHGQLW\SSOLNX

header("Content-type: image/gif");

LZ\NRU]\VWDQRZáDFLZIXQNFMZ\ZLHWOHQLDLOXVWUDFML

imagegif

).

7ZRU]F ZáDVQH JUDILNL SU]\ SRPRF\ PRGXáX *' PR*HV] NRQWURORZDü NRORU ND*GHJR
pikse

OD SDPLWDMF R RJUDQLF]HQLDFK ND*GHJR ] IRUPDWyZ JUDILF]Q\FK 6SUyEXMHP\ WHJR

do

NRQDüZQDVWSQ\PüZLF]HQLX

ýZLF]HQLH

Napisz program, który w rysunku w formacie GIF o wymiarach 100x100 wylosuje i zakolo-
ruje 300 punktów

F]HUZRQ\FK L F]DUQ\FK SXQNW\ Z NROHMQ\FK ORVRZDQLDFK PRJ VL

SRZWDU]Dü
:\NRU]\VWDP\IXQNFMNWyUDRNUHODNRORUSRMHG\QF]HJRSLNVHOD

LPDJHVHWSL[HO

'ODU\VXQNXRNUHORQHJRSU]H]SLHUZV]\DUJXPHQW

GHILQLXMHNRORUSLNVHODRZVSyáU]GQ\FKSRGDQ\FK przez

GUXJLLWU]HFLDUJXPHQW&]ZDUW\DUJXPHQWRNUHODNRORU

1LHPXVLP\PDUWZLüVLRSRZWyU]HQLDZ\ORVRZDQ\FKSXQNWyZ:]ZL]NX]W\PZSWOL

ORVXMHP\ZVSyáU]GQHF]HUZRQHJRLF]DUQHJRSXQNWX

SKS

<?
// Program losuje 300 punktów czerwonych i czarnych i zaznacza je.

header("Content-type: image/gif");

$rysunek = imagecreate (100,100);

$kolorbialy = imagecolorallocate ($rysunek, 255, 255, 255);
$kolorczerwony = imagecolorallocate ($rysunek, 255, 0, 0);
$kolorczarny = imagecolorallocate ($rysunek, 0, 0, 0);

background image

3+3²þZLF]HQLDSUDNW\F]QH

108

imagefill ($rysunek, 0, 0, $kolorbialy);
srand(time());

for ($i=1; $i<=300; $i++) {
imagesetpixel ($rysunek, rand()%100-1, rand()%100-1, $kolorczerwony);
imagesetpixel ($rysunek, rand()%100-1, rand()%100-1, $kolorczarny);
}
imagegif ($rysunek);
?>

']LDáDQLHSURJUDPXSRND]XMHSRQL*V]DLOXVWUDFMDFKRüWUXGQREG]LHGRVWU]HFUy*QLFSo-

PLG]\F]HUZRQ\PLLF]DUQ\PLSXQNWDPL

Rysunek 5.3. Losowe czerwone i czarne piksele

,VWQLHMHZLHOHIXQNFMLNWyUHPRG\ILNXMU\VXQNL:DUWR]DSR]QDüVL]QLHNWyU\PL]QLFK

ýZLF]HQLH

1DSLV]SURJUDPNWyU\ZU\VXQNXZIRUPDFLH*,)RZ\PLDUDFK[QDU\VXMHSLüRNU

JyZF]HUZRQ\FKLSLüF]DUQ\FKZORVRZ\FKPLHMVFDFK
1LH PD IXQNFML U\VXMFHM RNUJ DOH VNRU]\VWDP\ ] EDUG]iej ogólnej, która rysuje wycinek
elipsy.

LPDJHDUF

5\VXMHZ\FLQHNHOLSV\.ROHMQ\PLDUJXPHQWDPLV

LGHQW\ILNDWRUU\VXQNXZVSyáU]GQD[URGNDáXNX

ZVSyáU]GQD\URGNDáXNXV]HURNRüáXNXZ\VRNRü

áXNXNWSRF]WNXNWNRFDNRORU

-H*HOLZZ\ZRáDQLXIXQNFMLV]HURNRüLZ\VRNRüEGVRELHUyZQHDáXNEG]LHSHáHQRG
0

GRVWRSQLWRU\VRZDQ\áXNRND*HVLRNUJLHP

SKS

<?

3URJUDPWZRU]\LOXVWUDFM]SLFLRPDF]HUZRQ\PLLSLFLRPD

F]DUQ\PLRNUJDPL


header("Content-type: image/gif");

$rysunek = imagecreate (100,100);

background image

5R]G]LDã*UDILNDZ3+3

109

$kolorbialy = imagecolorallocate ($rysunek, 255, 255, 255);
$kolorczerwony = imagecolorallocate ($rysunek, 255, 0, 0);
$kolorczarny = imagecolorallocate ($rysunek, 0, 0, 0);

imagefill ($rysunek, 0, 0, $kolorbialy);
srand(time());

for ($i=1; $i<=5; $i++) {
imagearc ($rysunek, rand()%100-1, rand()%100-1,
20, 20, 0, 360, $kolorczerwony);
imagearc ($rysunek, rand()%100-1, rand()%100-1,
20, 20, 0, 360, $kolorczarny);
}
imagegif ($rysunek);
?>

5\VXQHN/RVRZHRNUJL

'R U\VXQNX PR*QD GRáF]Dü LQQH DOER WDNLH NWyUH V GRVWSQH DOER WZRU]RQH Z F]DVLH

G]LDáDQLDVNU\SWX

ýZLF]HQLH

1DSLV]SURJUDPNWyU\Z\ZLHWOLIRUPXODU]SR]ZDODMF\ZSLVDüOLF]E3RMHMZSLVDQLXZy-

ZLHWOLJUDILF]QSUH]HQWDFMZSLVDQHMOLF]E\
/LF]EEG]LHP\NRQVWUXRZDü]SRV]F]HJyOQ\FKF\IU:NDWDORJXcyfrySU]\NáDGyZ]QDj-
dziesz wszystkie cyfry w formacie GIF o rozmiarze 15x20 pikseli.

Wykorzystamy trzy nowe funkcje.

LPDJHFUHDWHIURPJLI

7ZRU]\U\VXQHNQDSRGVWDZLHMX*LVWQLHMFHJR$UJu-
mentem jest nazwa pliku. Funkcja zwraca identyfikator
utworzonego rysunku.

LPDJHFRS\UHVL]HG

.RSLXMHGRU\VXQNXRNUHORQHJRSU]H]SLHUZV]\DUJu-
ment inny –

RNUHORQ\SU]H]GUXJL1DVWSQe argumenty

RNUHODMZVSyáU]GQHx i yPLHMVFDZNWyU\PQDOH*\

U\VXQHNXPLHFLüZVSyáU]GQHx i y oraz rozmiar dx i dy

ZU\VXQNXGRFHORZ\PLZLHONRüddx i ddy w rysunku

(UyGáRZHJRSR]ZDODMFHQDSU]eskalowanie).

background image

3+3²þZLF]HQLDSUDNW\F]QH

110

LPDJHGHVWUR\

Likwiduje identyfikator

U\VXQNXMHGQRF]HQLH]ZDOQLa-

MFSDPLü]QLP]ZL]DQ

SKS

<?

3URJUDPZ\ZLHWODIRUPXODU]SR]ZDODMF\ZSLVDüOLF]E-H*HOLOLF]ED

MHVWZSLVDQDZ\ZLHWODMZSRVWDFLJUDILF]QHM


function printliczba ($numer) {

IXQNFMDZ\ZLHWODOLF]EZSRVWDFLJUDILNLNRU]\VWDMF]JUDILN

- cyfr,

// zawartych w katalogu cyfry.
$liczbacyfr=1; $l = $numer;
while ($l >= 10) {
$liczbacyfr++;
$l=floor($l/10);
}

header("Content-type: image/gif");
$rysunek = imagecreate (15*$liczbacyfr,20);
for ($i=$liczbacyfr; $i>=1; $i--) {
$cyfra = floor($numer/pow(10,$i-1));
$numer = $numer % pow(10,$i-1);
$rysunekcyfra = imagecreatefromgif ("cyfry/$cyfra.gif");
imagecopyresized
($rysunek,$rysunekcyfra,($liczbacyfr-$i)*15,0,0,0,15,20,15,20);
imagedestroy ($rysunekcyfra);
}
imagegif ($rysunek);
}

LIOLF]ED!^MHVWZSLVDQDMDNDZDUWRüZIRUPXODU]X

printliczba ($liczba);

`HOVH^QLHPDZSLVDQ\FKGDQ\FKZ\ZLHWODP\IRUPXODU]

print '<HTML>';
print ' <HEAD>';
print ' <META HTTP-EQUIV="Content-Type" CONTENT="text/html; ';
print ' charset=iso-8859-2">';
print ' <TITLE>Liczba graficznie</TITLE>';
print ' </HEAD>/n';
print ' <BODY>/n';
print ' <FORM ACTION="5-05.php" METHOD=GET>/n';
print ' <INPUT TYPE="text" NAME="liczba">/n';
print '

,13877<3( VXEPLW9$/8( :\OLM!Q

print ' </FORM>/n';
print ' </BODY>/n';
print '</HTML>/n';
}
?>

.OXF]RZURORGJU\ZDRF]\ZLFLHIXQNFMD

printliczba

Z\ZLHWODMFJUDILF]QSUH]HQWDFM

liczby, która jest jej parametrem. Warto za

SR]QDüVL]MHMG]LDáDQLHP

1DSRF]WNXIXQNFMDRNUHODOLF]EF\IUOLF]E\&]\QLWRSRSU]H]]OLF]DQLHLOHUD]PR*QDM

FDáNRZLFLH SRG]LHOLü SU]H] :\NRU]\VWDQD IXQNFMD

floor

SRGDMH FDáNRZLW F]ü OLF]E\

VWDQRZLFHMMHMSDUDPHWU

1DVWSQLHWZRU]\P\LOXVWUDFMRRGSRZLHGQLPUR]PLDU]H.D*GDF\IUDPDUR]PLDU\[

ZLF]QDMFOLF]EF\IUWZRU]\P\U\VXQHNRUR]PLDUDFK

15*$liczbacyfr x 20

.

background image

5R]G]LDã*UDILNDZ3+3

111

'DOHMZSWOLGODND*GHMF\IU\QDV]HMOLF]E\SU]HSURZDG]DP\SHZQRSHUDFM=ZUyüXZDJ

MDNRNUHODP\NROHMQF\IUOLF]E\

$cyfra = floor($numer/pow(10,$i-1));
$numer = $numer % pow(10,$i-1);

3LHUZV]F\IUOLF]E\RNUHODP\G]LHOFMFDáNRZLFLHSU]H]OLF]ENWyUDRNUHODMHMU]G

QDMZLNV]SRWJOLF]E\PQLHMV]RGQLHM'RGDOV]\FKG]LDáDRGFLQDP\So prostu

SLHUZV]F\IU
:DUWR ]DXZD*\ü *H Z SWOL SRMDZLD VL LQQD ]PLHQQD LGHQW\ILNXMFD U\VXQHN

$rysunekcyfra

.

:\QLNDWR]IDNWX*HDE\VNRSLRZDüMHGQLOXVWUDFMGRGUXJLHMPXVLV]RNUHOLüREDU\VXnki.
3R XPLHV]F]HQLX LOXVWUDFML ZH ZáDFLZ\P PLHMVFX Z GRFHORZHM JUDILFH ZDUWR M XVXQü
z

SDPLFLIXQNFM

imagedestroy

PLPR*HZW\PSU]\SDGNXSURJUDPG]LDáDáE\WDNVDPREH]

tej funkcji).

Rysunek 5.5.

/LF]EDZ\ZLHWORQDJUDILF]QLH

Do graficznej prezentacji danych nieoceniona jest funkcja, kt

yUDU\VXMHZ\SHáQLRQ\SURVWoNW

LPDJHILOOHGUHFWDQJOH

5\VXMHZ\SHáQLRQ\SURVWRNW$UJXPHQWDPLVLGHQWy-

ILNDWRUU\VXQNXZVSyáU]GQH[L\OHZHJRJyUQHJRURJX

ZVSyáU]GQH[L\SUDZHJRGROQHJRURJXRUD]NRORU

ýZLF]HQLH

Napisz skrypt, który

Z\SHáQLWDEOLFG]LHVLFLRPDORVRZ\PLOLF]EDPL]]DNUHVX

1DVWp-

QLH]LOXVWUXMZ\ORVRZDQHZDUWRFLQDZ\NUHVLHVáXSNRZ\P

SKS

<?

3URJUDPWZRU]\Z\NUHVVáXSNRZ\QDSRGVWDZLHG]LHZLFLRHOHPHQWRZHM

WDEOLF\]DSHáQLRQHMORVRZ\PLZDUWRFLDPL

Wykres jest podpisany.


srand(time());
for ($i=0; $i<10; $i++) { $liczby[$i] = rand()%10; }

header("Content-type: image/gif");

$rysunek = imagecreate (100,100);
$kolorbialy = imagecolorallocate ($rysunek, 255, 255, 255);

background image

3+3²þZLF]HQLDSUDNW\F]QH

112

$kolorczarny = imagecolorallocate ($rysunek, 0, 0, 0);
imagefill ($rysunek, 0, 0, $kolorbialy);

for ($i=0; $i<10; $i++) {
$kolorslupka = imagecolorallocate ($rysunek, 25*$i, 25*$i, 0);
imagefilledrectangle
($rysunek, $i*10+3, 90-$liczby[$i]*10, $i*10+7, 90, $kolorslupka);
imagestring ($rysunek, 1, 3+$i*10, 91, $i, $kolorczarny);
}

imagegif ($rysunek);
?>

W p

WOL GOD ND*GHJR HOHPHQWX WDEOLF\ RNUHODP\ NRORU VáXSND VSU\WQLH ]PLHQLDMF GZLH

VNáDGRZHNRORUXSRZRGXMHP\*HNRORUEG]LHVL]PLHQLDáRGF]DUQHJRGR*yáWHJR
1DVWSQLHU\VXMHP\VáXSHN:VSyáU]GQ

x

OHZHJRJyUQHJRURJXRNUHODP\Z]DOH*QRFLRG

w

DUWRFLRGSRZLHGQLHMNRPyUNLWDEOLF\']LNLWHPXVáXSHNEG]LHPLDáZ\VRNRüX]DOH*

QLRQRGWHMZDUWRFL
2SUyF]WHJRND*G\]HVáXSNyZQXPHUXMHP\%LEOLRWHND*'SR]ZDODQDGRGDQLHWHNVWXGRXWZo-

U]RQHMJUDILNLZDUWRZLFVNRU]\VWDü]WHMPR*OLZRFL3RPRFQDRND*HVLIXQNFMD

imagestring

.

LPDJHVWULQJ

Umieszcza tekst na rysunku. Identyfikator tekstu jest

SLHUZV]\PDUJXPHQWHP1DVWSQHWRQXPHUF]FLRQNL

ZVSyáU]GQH[L\RGNWyU\FKUR]SRF]\QDVLSLVDQLH
tekst do wypisania i jego kolor.

3RQL*V]DLOXVWUDFMDSRND]XMHG]LDáDQLHSURJUDPX

5\VXQHN3UH]HQWDFMDGDQ\FKZSRVWDFLZ\NUHVXVáXSNRZHJR

0R*HV]Z\NRU]\VWDüFHFKIRUPDWX*,)LVWZRU]\üREUD]HN]SU]HSORWHPDQJinterleaced).

6SRZRGXMHWR*HEG]LHRQZ\ZLHWODQ\X*\WNRZQLNRZL]HVWRSQLRZRURVQFUR]G]LHOF]o-

FL1DSRF]WNXX*\WNRZQLN]REDF]\U\VXQHNUR]PD]DQ\DZPLDUZF]\W\ZDQLDEG]LH

VWDZDáDVLFRUD]EDUG]LHMZ\UD(QD']LNLWHPXX*\WNRZQLNPQLHMVLEG]LHQLHFLHUSOLZLá
podczas wczytywania rysunku.

Stosowanie przeplotu ma sens szcze

JyOQLH Z SU]\SDGNX LOXVWUDFML R GX*\FK UR]PLDUDFK

:WHG\X*\WNRZQLNQDSHZQRWRGRFHQL

background image

5R]G]LDã*UDILNDZ3+3

113

ýZLF]HQLH

1DSLV]VNU\SWNWyU\XWZRU]\GX*LOXVWUDFMRUR]PLDUDFK[=DSHáQLMMZLHORPD

Uy*QRNRORURZ\PL NZDGUDWDPL 1DU\VXM WH* OLQL L Z\SLV] MDNL WHNVW :\ZLHWO LOXVWUDFM
z przeplotem.

=DZ\ZLHWODQLHLOXVWUDFML]SU]HSORWHPMHVWRGSRZLHG]LDOQDIXQNFMD

imageinterlace

.

LPDJHLQWHUODFH

:VND]XMHF]\U\VXQHNRNUHORQ\SLHUZV]\PSDUDPe-

WUHPPDE\üZ\ZLHWORQ\]SU]HSORWHP-H*HOLWDNGUXJL
argument p

RZLQLHQPLHüZDUWRü758(

SKS

<?

3URJUDPZ\ZLHWODXWZRU]RQSU]H]VLHELHLOXVWUDFM]SU]HSORWHP


srand(time());

header("Content-type: image/gif");

$rysunek = imagecreate (800,600);
$kolorbialy = imagecolorallocate ($rysunek, 255, 255, 255);
$kolorczarny = imagecolorallocate ($rysunek, 0, 0, 0);
imagefill ($rysunek, 0, 0, $kolorbialy);

for ($i=0; $i<250; $i++) {
$kolorprostokata = imagecolorallocate ($rysunek, rand()%256,
rand()%256, rand()%256);
imagefilledrectangle ($rysunek, rand()%800, rand()%600, rand()%800,
rand()%600, $kolorprostokata);

}
imagestring ($rysunek, 4, 310, 91, "To jest napis", $kolorczarny);
imageline ($rysunek, 0, 0, 800, 600, $kolorczarny);
imageinterlace ($rysunek, TRUE);
imagegif ($rysunek);
?>

&HORZR XWZRU]\OLP\ WDN GX*\ U\VXQHN DE\ HIHNW E\á ZLGRF]Q\ QDZHW MH*HOL NRU]\VWDV]
z

VHUZHUD:::QDZáDVQ\PNRPSXWHU]HG]LNLF]HPXX]\VNXMHV]Eá\VNDZLF]Q\WUDQVIHU

Podczas wczytywania ilu

VWUDFML SU]HSORW PR*QD ]DXZD*\ü ]ZáDV]F]D QD QDU\VRZDQHM OLQLL

i

QDWHNFLH-HGQDNFDáNLHPGREU]HEG]LHRQZLGRF]Q\GODND*GHJRNWREG]LHFLJDáJUa-

fi

NSU]H],QWHUQHW

1LH]Z\NOHSU]\GDWQFHFKIRUPDWX*,)MHVWWR*HSHZQHMHJRIUDJPHQW\PR*QDXF]\QLü

SU]H]URF]\VW\PL ']LNL WHPX LVWQLHMH PR*OLZRü ]DPLHV]F]HQLD QD VWURQLH U\VXQNX NWyU\

VSUDZLDZUD*HQLHMDNE\SRVLDGDáNV]WDáWLQQ\QL*SURVWRNWQ\
%LEOLRWHND*'SR]ZDODZSURZDG]LüSU]H]URF]\VWRüZU\VXQNXZEDUG]RáDWZ\VSRVyE:\VWDr-
czy zdefini

RZDüMHGHQ]NRORUyZMDNRSU]H]URF]\VW\–]DSRPRFIXQNFML

imagecolortransparent

.

LPDJHFRORUWUDQVSDUHQW

'ODU\VXQNXRNUHORQHJRSLHUZV]\PDUJXPHQWHP

XVWDODNRORUNWyU\EG]LHSU]H]URF]\VW\VWDQRZLRQ
drugi argument).

background image

3+3²þZLF]HQLDSUDNW\F]QH

114

ýZLF]HQLH

Napisz skrypt,

NWyU\XWZRU]\LOXVWUDFM]F]HUZRQ\PNyáNLHPQDELDá\PWOH6SUDZE\ELDá\

NRORUE\áRSU]H]URF]\VW\:\ZLHWOLOXVWUDFMQDVWURQLH+70/NWyUDSRVLDGDWáRLQQHJRQL*

ELDá\NRORUX

SKS

<?

:\ZLHWODF]HUZRQHNyáNRQDSU]H]URF]\VW\PWOH


header("Content-type: image/gif");

$rysunek = imagecreate (200,200);

$kolorbialy = imagecolorallocate ($rysunek, 255, 255, 255);
$kolorczerwony = imagecolorallocate ($rysunek, 255, 0, 0);

imagefill ($rysunek, 0, 0, $kolorbialy);
imagearc ($rysunek, 100, 100, 70, 70, 0, 360, $kolorczerwony);
imagefill ($rysunek, 100, 100, $kolorczerwony);

imagecolortransparent ($rysunek, $kolorbialy);

imagegif ($rysunek);
?>

Skrypt

XWZRU]\F]HUZRQHNyáNRQDELDá\PWOH1LH]DXZD*\P\SU]H]URF]\VWRFLXUXFKamia-

MF JR :\NRU]\VWDMP\ MHGQDN Z\QLN G]LDáDQLD VNU\SWX Z\ZLHWODMF JR QD V]DU\P WOH
w dokumencie HTML.

KWP

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">

7,7/(!5\VXQHN]SU]H]URF]\VW\PWáHP7,7/(!

</HEAD>

<BODY BGCOLOR="#AAAAAA">
<IMG SRC="5-08.php">
</BODY>

</HTML>

0R*QD]DXZD*\ü*HGRXWZRU]RQHM]DSRPRFVNU\SWX3+3LOXVWUDFMLRGZRáXMHP\VLSo-
dobnie, jak do

]Z\NáHMLOXVWUDFML

:\QLNLHPMHVWF]HUZRQHNyáNRQDV]DU\PWOHFRZLDGF]\RW\P*HXWZRU]RQ\SU]H]VNU\SW

U\VXQHNPDSU]H]URF]\VWHWáR

%DUG]RFHQQPR*OLZRFLRIHURZDQSU]H]ELEOLRWHNMHVWRGF]\WDQLHUR]PLDUyZU\VXQNX

0R*HWRVLSU]\GDüQDSU]\NáDGSU]\SLVDQLXVNU\SWXDXWRPDW\F]QLHREVáXJXMFHJRJDOHUL

]GMü]NWyU\FKND*GHPR*HE\üLQQHMZLHONRFL

background image

5R]G]LDã*UDILNDZ3+3

115

ýZLF]HQLH

'ODLVWQLHMFHJRU\VXQNXZ\ZLHWOJRZGRNXPHQFLH+70/DXWRPDW\F]QLHRNUHODMFMHJR

V]HURNRüLZ\VRNRüDWDN*HQDGDMFatrybuty WIDTH i HEIGHT.
5R]PLDUU\VXQNXPR*QDRNUHOLüQDGZDVSRVRE\3LHUZV]\]QLFKZ\PDJDQDMSLHUZSo-

ZRáDQLD RNUHODMFHM JR ]PLHQQHM 7ZRU]F QRZ LOXVWUDFM SRVáXJLZDOLP\ VL IXQNFM

createimage

:SU]\SDGNXU\VXQNXMX*LVWQLHMFHJRQDOH*\]DVWRVRZDüIXQNFM

createimage-

fromgif.

FUHDWHLPDJHIURPJLI

)XQNFMD]ZUDFD]PLHQQRNUHODMF– rysunek zawarty
w pliku, którego nazwa stanowi argument funkcji.

:LHONRüLOXVWUDFMLRNUHODVLSU]\X*\FLXGZyFKIXQNFML

LPDJHVL]H[

)XQNFMD]ZUDFDV]HURNRüU\VXQNXRNUHORQHJRSU]H]
identyfikator – parametr.

LPDJHVL]H\

)XQNFMD]ZUDFDZ\VRNRüU\VXQNXRNUHORQHJRSU]H]
identyfikator – parametr.

,QQPHWRGMHVWZ\NRU]\VWDQLHEDUG]RSR*\WHF]QHMIXQNFML

getimagesize

.

JHWLPDJHVL]H

)XQNFMD]ZUDFDWDEOLF]DZLHUDMFF]WHU\SRODV]HUo-

NRüU\VXQNXMHJRZ\VRNRüW\SRUD]áDFXFK]QDNyZ
do wykorzystania w znaczniku IMG.

:SU]\NáDG]LHVWRVXMHP\RELHPHWRG\

SKS

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
<TITLE>Odczytanie rozmiaru ilustracji</TITLE>
</HEAD>

<BODY>

"$SOLNDFMDGDMHQDPPR*OLZRüRGF]\WXNDVRZDQLDGRGDZDQLD

// i poprawy danych w bazie.

$nazwarysunku = "bannery/1.gif";
$rysunek = imagecreatefromgif ($nazwarysunku);

SULQW6]HURNRüU\VXQNX%!LPDJHV[U\VXQHN

SULQW%!Z\VRNRüU\VXQNX%!LPDJHV\U\VXQHN%!%5!


$wh = getimagesize ($nazwarysunku);
print "<IMG SRC=\"$nazwarysunku\" $wh[3]>";

?>

</BODY>
</HTML>

6NU\SWZ\SLVXMHNRGZ\ZLHWODMF\U\VXQHN]DSRPRF]QDF]QLND

<IMG>

:DUWRFLDWUybu-

tów

WIDTH

i

HEIGHT

GODyZF]HQLHRGF]\WDQHJRU\VXQNXVRNUHODQHRGSRZLHGQLPLIXQk-

background image

3+3²þZLF]HQLDSUDNW\F]QH

116

FMDPL : QDV]\P SU]\SDGNX SRVáXJXMHP\ VL EDQQHUHP NWyU\ ]QDMGXMH VL Z SOLNX
z pr

]\Náadami.

:\ZLHWODP\WH*WHNVWRZLQIRUPDFMRV]HURNRFLLZ\VRNRFLU\VXQNX

3+3GDMHPR*OLZRüSU]HVNDORZDQLDU\VXQNXRGSRZLDGD]DWRSR]QDQDMX*IXQNFMD

imgcopy-

fromgif

1DOH*\MHGQDN]GDZDüVRELHVSUDZ*HMDNRüWHJRSU]HVNDORZDQLDMHVWQL*V]DQL*

JG\E\ ]RVWDáR GRNRQDQH ]D SRPRF GREUHJR SURJUDPX JUDILF]QHJR %\ü PR*H FKFLDáE\

Z\NRU]\VW\ZDüZVZRLPVHUZLVLHMHGQLOXVWUDFMZNLONXUy*Q\FKUR]PLDUDFKLPDV]]a-

PLDUSU]HFKRZ\ZDüQDVHUZHU]HW\ONRQDMZLNV]DPQLHMV]HWZRU]\üSU]\X*\FLXVNU\SWu

3+3:DUWRVL]DVWDQRZLüF]\QLHOHSLHM]DPLHFLüMMHGQDNQDVHUZHU]HZND*GHM]So-

WU]HEQ\FK ZLHONRFL SR SU]HNV]WDáFHQLX ]D SRPRF SURJUDPX JUDILF]QHJR =DSHZQL WR

]QDF]QLHZ\*V]MDNRüLOXVWUaFMLSU]\VSLHV]\Z\ZLHWODQLHLRGFL*\VHUZHU

ýZLF]HQLH

1DSLV]VNU\SWNWyU\SU]HVNDORZXMHLOXVWUDFM3RUyZQDMMDNRüWDNLHMLOXVWUDFML]SU]HVNDOo-

ZDQ]DSRPoFSURJUDPXJUDILF]QHJR
6SUyEXMHP\]PLHQLüUR]PLDUMHGQHM]RNáDGHNNVL*HN2U\JLQDá]QDMGXMHVLZNDWDORJXimg

SU]\NáDGyZ 7DP WDN*H RGQDMG]LHV] LOXVWUDFM ]PQLHMV]RQ ]D SRPRF SURJUDPX &RUHO
PHOTO-PAINT.

3RQL*V]\VNU\SWRGF]\WXMHMX*LVWQLHMFLOXVWUDFMLNRSLXMHMGRWHMQRZRXWZRU]RQHMSR
pomniejszeniu).

SKS

<?

3URJUDPSU]HVNDORZXMHLOXVWUDFM][QD[

.


header("Content-type: image/gif");

$rysunek = imagecreate (72,93);
$rysunekprzeksztalcany = imagecreatefromgif ("img/ph6bib.gif");
imagecopyresized
($rysunek,$rysunekprzeksztalcany,0,0,0,0,72,93,181,236);
imagedestroy ($rysunekprzeksztalcany);
imagegif ($rysunek);
?>

8WZRU]\P\ WDN*H GRNXPHQW +70/ NWyU\ Z\ZLHWOL ZV]\VWNLH LOXVWUDFMH Z\MFLRZ So-

PQLHMV]RQ]DSRPRF3+3LSU]\]DVWRVRZDQLXSURJUDPX&RUHO3+272-PAINT.

KWP

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
<TITLE>Rysunek przeskalowany przez PHP i programem CorelDraw</TITLE>
</HEAD>
<BODY BGCOLOR="#AAAAAA">
<TABLE>
<TR><TD COLSPAN=2 ALIGN=CENTER><IMG SRC="img/ph6bib.gif"></TD></TR>
<TR><TD COLSPAN=2 ALIGN=CENTER>Rysunek oryginalny<P></TD></TR>
<TR><TD ALIGN=CENTER><IMG SRC="5-10.php"></TD>
<TD ALIGN=CENTER><IMG SRC="img/ph6bib-corel.gif"></TD></TR>
<TR><TD ALIGN=CENTER>PHP</TD><TD ALIGN=CENTER>Corel</TD></TR>

background image

5R]G]LDã*UDILNDZ3+3

117

</TABLE>
</BODY>
</HTML>

1LHWUXGQR]DXZD*\ü*HMDNRüSUDZHMLOXVWUDFMLMHVW]QDF]QLHOHSV]DQL*OHZHM

1LH]QDF]\WR*HZRJyOHQLHSRZLQQRVL]PLHQLDüUR]PLDUyZ]DSRPRF3+3:DUWRMHd-

QDNSRGFKRG]LüGRWHJREDUG]RUR]ZD*QLH

Funkcja

imagegif

DWDN*H

imagejpg

) zapewnia je

V]F]HMHGQFLHNDZPR*OLZRü5\VXQHN–

]DPLDVW]RVWDüZ\ZLHWORQ\–PR*H]RVWDü]DSLVDQ\ZRGSRZLHGQLPIRUPDFLH:\VWDUF]\

SRGDüPXGUXJLGRNXPHQW–QD]ZSOLNX

ýZLF]HQLH

:\NRU]\VWDMSURJUDP]üZLF]HQLDL]DSLV]XWZRU]RQ\SU]H]QLHJRZ\NUHs w pliku teksto-
wym.

:\NRU]\VWDP\PR*OLZRüMDNGDMHQDPIXQNFMD

imagegif

.

SKS

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
<TITLE>Zapis rysunku do pliku</TITLE>
</HEAD>
<BODY>

<?
// P

URJUDPWZRU]\Z\NUHVVáXSNRZ\QDSRGVWDZLHG]LHZLFLRHOHPHQWRZHM

WDEOLF\]DSHáQLRQHMORVRZ\PLZDUWRFLDPL:\NUHVMHVWSRGSLVDQ\

// Utworzona ilustracja zostaje zapisana do pliku rys.gif.

srand(time());
for ($i=0; $i<10; $i++) {
$liczby[$i] = rand()%10;
}

$rysunek = imagecreate (100,100);
$kolorbialy = imagecolorallocate ($rysunek, 255, 255, 255);
$kolorczarny = imagecolorallocate ($rysunek, 0, 0, 0);
imagefill ($rysunek, 0, 0, $kolorbialy);

for ($i=0; $i<10; $i++) {
$kolorslupka = imagecolorallocate ($rysunek, 25*$i, 25*$i, 0);
imagefilledrectangle
($rysunek, $i*10+3, 90-$liczby[$i]*10, $i*10+7, 90, $kolorslupka);
imagestring ($rysunek, 1, 3+$i*10, 91, $i, $kolorczarny);
}

imagegif ($rysunek, 'img/rys.gif');
?>

3!5\VXQHN]RVWDá]DSLVDQ\GRSOLNX3!


</BODY>
</HTML>

background image

3+3²þZLF]HQLDSUDNW\F]QH

118

:SU]\SDGNXJG\VHUZHUG]LDáDZURGRZLVNX:LQGRZVQLHSRMDZLVL*DGQHSUREOHP\

6SUDZG(XWZRU]RQ\SOLNZF]\WDMJRGRSURJUDPXJUDILF]QHJRE\]REDF]\ü*HMHVWWRU]e-

F]\ZLFLHLOXVWUDFMD
-H*HOL VHUZHU G]LDáD Z V\VWHPLH /LQX[ PXVLV] SDPLWDü *H tworzenie pliku graficznego

ZL*H VL ] LGHQW\F]Q\PL ]DVWU]H*HQLDPL MDN w przypadku innych =RVWDáR WR Z\MDQLRQH
w rozdziale 4. Katalog, w którym tworzysz plik,

PXVLSRVLDGDüRGSRZLHGQLHSUDZD– do za-

pisu, d

ODWHJRGREU]HMHVWXWZRU]\üGRSU]HFKRZ\ZDQLDLQQ\ katalogQL*WHQZNWyU\PSU]e-

chowujesz dokumenty PHP.

5\VXQNLWZRU]RQHSRVWURQLHVHUZHUDPRJE\üEDUG]RFHQQ\PVSRVREHPSUH]HQWDFMLUy*Qe-
go rodzaju dynamiczn

\FKGDQ\FKQDVWURQLH0XVLV]MHGQDNSDPLWDü*HLFKWZRU]HQLHRb-

FL*DVHUZHU, dODWHJRSRZLQLHQHUR]ZD*\üMDNF]VWRGDQHXOHJDM]PLDQLH-H*HOLQDSU]y-

NáDGEG]LHV]SUH]HQWRZDáZ\NUHV\FHQZDOXW\]PLHQLDMFHVLUD]G]LHQQLHQLHPDVHQVX

ND*GRUD]RZR WZRU]\üLOXVWUDFMLQDSRGVWDZLHGDQ\FK]ED]\0R*QDNRU]\VWDMF]PR*liwo-

FLELEOLRWHNL*',Z\JHQHURZDüMHUD]QDG]LHLZ\ZLHWODüX*\WNRZQLNRPSU]ygotowany

SOLN-H*HOLMHGQDNLOXVWUDFMHVprzygotowywane QDSRGVWDZLHGDQ\FKZ\QLNá\FK] komu-
nikacji

]X*\WNRZQLNLHPQLHPDZ\MFLDWU]HEDWZRU]\üLOXVWUDFM]DND*G\PUazem.

:DUWRUyZQLH*SDPLWDü*HGREUDLOXVWUDFMDutworzona przez profesjonalnego grafika w do-
brym pro

JUDPLHJUDILF]Q\PQDSHZQREG]LHOHSV]DQL*przygotowana ]DSRPRFVNU\SWX

w PHP.

1DOH*DáRE\ZLFUDF]HMRGU]XFLü (chyba*HQLHPDLQQHMPR*OLZRFLSRP\Vá\Wypu:

two

U]HQLH]DSRPRF3+3SU]\FLVNyZJUDILF]Q\FK]RNUHORQ\PWHNVWHPF]\JHQHURZanie

lo

VRZHJRWáD:\NoU]\VWDMELEOLRWHN*'LHNVSORDWXMVZyMVHUZHUWDPJG]LHMHVWWRX]asad-

nione.

-H*HOL]QDMG]LHV]ÄJRWRZFH´ZSRVWDFLSURFHGXUWZRU]F\FKLOXVWUDFMHQDSLVDQ\FKZM]\NX
C lub w Perlu, z wykorzystaniem biblioteki GD

NWyUD MHVW GOD QLFK WDN*H GRVWSQD EH]

pro

EOHPXSRUDG]LV]VRELH]LFKSU]HNRQZHUWRZDQLHPGR3+30HWRGRORJLDG]LDáDQLDDQa-

wet n

D]Z\IXQNFMLVEDUG]RSRGREQH:SURJUDPLHQDSLVDQ\PZM]\NX&bLEOLRWHN*'

zidentyfikujesz po wierszu:

#include "gd.h"

a w programie napisanym w Perlu po wierszu:

use GD;

Katalog skryptów przeznaczonych do generowania grafiki – z wykorzystaniem biblioteki GD –
znajd

XMH VL na stronie

http://php.resourceindex.com/Complete_Scripts/Images_and_Graphs/.

Katalog ci

JOHVLUR]ZLMDDOHtymczasem nie jest zbyt bogaty. 0R*QDtam jednak RGV]XNDü

na przy

NáDGGDUPRZ\VNU\SWNWóry tworzy kod kreskowy na podstawie podanej liczby.


Wyszukiwarka

Podobne podstrony:
PHP5 Tworzenie stron WWW cwiczenia praktyczne cwphp5
PHP5 Tworzenie stron WWW cwiczenia praktyczne Wydanie II cwph52
PHP5 Tworzenie stron WWW cwiczenia praktyczne
PHP5 Tworzenie stron WWW cwiczenia praktyczne cwphp5
PHP5 Tworzenie stron WWW cwiczenia praktyczne Wydanie II 2
Tworzenie stron WWW cwiczenia praktyczne Wydanie II 2
PHP5 Tworzenie stron WWW Cwiczenia praktyczne
PHP5 Tworzenie stron WWW cwiczenia praktyczne 2
Tworzenie stron WWW cwiczenia praktyczne Wydanie II cwtwo2
PHP5 Tworzenie stron WWW cwiczenia praktyczne
Tworzenie stron WWW cwiczenia praktyczne Wydanie II
PHP5 Tworzenie stron WWW cwiczenia praktyczne
PHP5 Tworzenie stron WWW cwiczenia praktyczne Wydanie II cwph52
PHP5 Tworzenie stron WWW Cwiczenia praktyczne Wydanie II
Tworzenie stron WWW cwiczenia praktyczne Wydanie II cwtwo2

więcej podobnych podstron