Professional Documents
Culture Documents
PHP 5
PHP 5
instalirae se Apache. IIS moete da na Windows XP instalirate ako iz Control Panela izaberte dugme
Add/Remove Programs, izaberete dugme Add/Remove Windows Components, a onda izaberete IIS.
PHP se na Windows moe instalirati na dva naina. Ono to je potrebno za oba naina se moe
preuzetu sa adrese http;//www.php.net/downloads.php. Postoji jedna posebna izvrna datoteka za
instalaciju na operativnom sistemu Windows, php-5.0.x-installer.exe, sa osnovnom podrkom za PHP
(tu su standradna proirenja, ali ne i od drugih proizvoaa). Ova datoteka automatski konfigurie
servere kao to su IIS, PWS i Xitami, a tu su i instrukcije za runo podeavanje drugih servera, kao
to je Apache.
Drugi nain instalacije je pomou -zip datoteke. Re je o datoteci php-5.0.x-Win32.zip, koja
sadri punu instalaciju PHP-a, zajedno sa spoaljnjim proirenjima (ova opcija je bolja ako elite da
pokrijete sve to postoji u ovoj knjizi). Preuzmite i raspaku-jte ovu datoteku. U njoj se nalaze i
instrukcije za instalaciju. U zavisnosti od opera-tivnog sistema koji koristite, obino se datoteka
php.exe kopira u odreenu fasciklu.
Naredni korak je da instalaciju PHP-a poveete sa Web serverom. Ako ste raspakovali -zip
datoteku na operativni sistem Windows XP i ako koristite Apache, trebalo bi da promenite i datoteku
http.cong. Ovo je konfiguraciona datoteka Apache servera. Ako koristite IIS, njega moete
konfigurisati koristedi kozolu za upravljanje (izaberite Start Settings ^Control Panel Administrative
ToolsInternet Services Manager) i pratite instrukcije za instalaciju (vise detalja moete nai u
instrukcijama za instalaciju - u njima je detaljno "pokriven" svaki korak).
Podeavanje razvojnog okruenja
Da biste mogli da pravite PHP strane, potrebanVam je neki editor teksta. PHP datoteke su
meavina HTML-a i PHP koda. Postoje razliiti editori, koji se koriste na razliitim operativnim
sistemima, kao to su, na primer, vi, emacs, pico, BBEdit ili SimpleText za Macintosh ili Notepad i
WordPAd za Windows. Podrazumevana ekstenzija PHP datoteka je .php (na primer,
myBigTimeWebPage.php).
Slika 1.1
Kreiranje PHP strane sa HTML kodom u njoj
Tekst se unosi kao obian tekst, ali predstavlja meavinu HTML-a i PHP-a. Kao to se vidi na slici
1.1, da biste napravili PHP stranu, morate da prvo unesete tekst prema slici i da ga upamtite u
datoteci sa ekstenzijom .php. Ovaj primer je uglavnom HTML kod. PHP deo je skript koji se nalazi
izmeu oznaka <?php i ?>. Kada ovaj dokument pogle-date u svom pretraivau, server koji
podrava PHP ita dokument, pronalazi PHP deo i automatski ga izvrava. U ovom sluaju PHP kod je
samo jedna linija phpinfo();, koja e prikazati HTML tabelu sa informacijama o instalaciji PHP-a na
serveru, kao to ste videli u primeru "Kreiranje prvog PHP skripta".
NAPOMENA
WordPad editor u Windowsu ima dosadnu naviku da nazivu datoteke dodaje ekstenz-iju .txt.
Ovo se deava u sluaju da ne prepoznaje ekstenziju. Ako tekstualni dokument pokuate da upamtite
sa ekstenzijom .PHf^ WordPAd e napraviti ekstenziju .PHRtxt. Ovo moete da izbegnete ako u
trenutku zapisivanja datoteke naziv stavite pod dvostruke navodnike, na primer "logbook.php".
Takode treba da imate na umu da WordPAd podrazumevano datoteke pamti u rtf ili doc (Microsoft
Word) formatu, u zav-isnosti od verzije Windowsa koju koristite. Da biste bili sigurni da su Vai XML
doku-menti u obinom tekstualnom formatu, iz padajue liste Save as type, koja se nalazi u okviru za
dijalog Save Aa, izaberite opciju Text Document.
<?php
Your PHP goes here....
?>
NAPOMENA
Ovo se jo moe skratiti ako u datoteci php.ini ukljudte opciju short tags (skraene oznake). To
je datoteka koju PHP koristi za konfiguraciju. U torn sluaju moete da koristite samo oznake <? i ?>.
Ja to ne bih preporuio, poto e Vai skriptovi esto biti upotrebljavani i na drugim serverima, pored
onog koji ste Vi podesili, tako da moe doi do konflikta sa drugim skript jezicima.
Unutar ovih oznaka se nalaze PHP skriptovi, koji se sastoje od PHP iskaza, koji zavravaju
znakom taka-zarez. Taj znak je bitan, poto on "saopstava" PHP-u da je tekud red zavren. Moda
ste radili sa drugim skript jezicima, kao to je JavaScript, kod kojih je upotreba znaka taka-zarez
opciona, kod PHP-a ona je obavezna.
Na prvi PHP skript je bio standardan. Koristili samo samo jedan iskaz - phpinfo(). Kao to ete
videti, PHP iskazi mogu da rade razliite stvari. Ovaj koristi funkciju phpinf o, koja prikazuje
informacije o verziji PHP-a koja se koristi. Kada takvu funkciju pozovete po nazivu, izvravaju se svi
iskazi koji se u njoj nalaze. Funkcija phpinfo je jedna od mnogih funkcija koje su ugraene u PHP i
koje su spremne za upotrebu. Funkcije mogu da sadre stotine redova koda, a sve to mi treba da
uradimo je da tu funkciju pozovemo preko njenog naziva.
U ovom shiaju e funkcija phpinfo kreirati HTML tabelu u kojoj se nalaze informa-cije o Vaoj
instalaciji PHP-a. Evo kako se funkcija poziva preko jednog iskaza:
<?php
phpinfo();
?>
Unesite ovaj skript u svom editoru teksta, kao to je pokazano za sluaj WordPada na slici 1.2, i
upamtite datoteku pod nazivom phpinfo.php. Nemojte zaboraviti da datoteku upamtite kao obian
tekst. Ako ona nije upamena na taj nain, PHP e imati problema sa njom (jedan od naina da to
proverite je da pogledate kompletan naziv datoteke u DOS prozoru pod Windowsom).
Slika 1.2
Kreiranje prvog PHP skripta
estitamo! Upravo ste kreirali svoj prvi PHP skript. Nije lose. Nakon to ste kreirali datoteku
phpinfo.php, sledei korak je da je upamtite na Web serveru, na mestu dakle server moe da je
proita. Ako radite sa nekim ISP provajderom, prebacite datoteku phpinfo.php na mesto gde se
smetaju standardne Web strane. To ete uraditi isto kao to prebacujete i obine HTML strane
pomou FTP programa ili Web interfejsa.
Ako radite u lokalu i ako ste na svom raunaru instalirali PHP i Web server, datoteku
phpinfo.php stavite na mesto gde server moe da je pronade. Kod Apache servera to je fascikla
htdocs, koja se nalazi ispod fascikle na kojoj je instaliran Apache. Kod IIS servera to je fascikla
inetpub/wwwroot. Na Linuxu to moe biti fascikla /var/www/html. Nakon to ste proverili da li je Va
Web server konfigurisan da radi sa PHP-om (prema instrukcijama za instalaciju koje ste preuzeli sa
sajta www.php.net), pokrenite Web server.
Izvrenje prvog PHP skripta
Da biste izvrili datoteku phpinfo.php, treba samo da je otvorite u svom pretraivau, kao i bilo
koju drugu Web stranu. To znai da je potrebno da pretraiva usmerite na URL adresu za
phpinfo.php (na primer http;//www.vasisp.com/korisnickoime/phpin-fo.php). Ako PHP koristite
lokalno, potraite adresu http:/localhost/phpinfo. php.
NAPOMENA
Nemojte da datoteku phpinfo.php otvarate direktno u pretraivau preko menija File Open,
poto e se time ona otvoriti bez prolaza preko Web severa, tako da ni PHP skript nee raditi. Treba
da budete sigurni da ste uneli pravi URL.
Slika 1.3
Rezultat prvog PHP skripta
Ako je sve u redu, trebalo bi da se prikae tabela sa informacijama o PHP-u, slino slici 1.3.
estitamo - postali ste PHP programer! Ovde je prikazano vise tabela. Ako krenete nanie, moete da
pronaete informacije o Vaoj konfiguraciji PHP-a. Ako ste se ikad pitali koja je verzija PHP-a kod Vas
instalirana, sada je trenutak da to proverite.
ta uiniti ako ovo ne radi?
Naalost, tota moe da "poe naopako" kada prvi put pokuavate da pokrenete PHP. Ako ne
ide sve po planu, nemojte paniiti. Potrebno je samo da utroite malo dodatnog vremena. Moda ste
dobili praznu stranu, ili ili poruku da datoteka nije pronadena, ili se pojavila neka druga gre{ka. Bez
obzira ta se desilo, problem se moe reiti.
Prvo to treba da proverite, ako PHP radi u lokalu, je da vidite da li je PHP podignut. Na
komandnoj liniji u fascikli sa instalacijom PHP-a i otkucajte php -v. Ako se prikae verzija PHP-a, onda
on radi. Ako moete da komandnu liniju otvorite i na raunaru svog ISP provajdera, na primer, preko
Telneta ili SSH2 aplikacije, moete da izvrite isti test.
Sledee to treba da proverite je da li je PHP instaliran na pravi nain. Ovo je problem koji
dovodi do prikazivanja prazne strane i, kada u svom pretraivau izaberete opciju view source, moi
ete da vidite PHP skript. To znai da Web server nije prosledio skript do PHP-a koji treba da ga izvri.
Ovo moe biti problematino i to je razlog to su instrukcije na sajtu www.php.net tako obimne.
Najbolja ideja je da sve proitate jo jednom, red po red, i tako proverite da li ste uradili sve to je
tamo nave-deno.
Nakon toga, treba da proverite da li je datoteka phpinfo.php tamo gde Web server oekuje da
bude. Kao to sam pomenuo, kod Apache servera lokacija je fascikla htdocs, koja se nalazi u fascikli
gde je Apache nstaliran. Kod HS-a to je fascikla inetpub/www-root. Na Linuxu to moe biti
/var/www/html. Prava fascikla moe biti razliita u zavisnosti od servera koji se koristi. Na PH serveru
koji ja koristim prava fascikla je /httpdocs/ROOT. Ako ste phpinfo.php prebacili na uobiajeni
direktorijum na raunaru provajdera (tamo gde se stavljaju HTML strane) i ako to ne radi, pitajte ISP
provajdera. Ponekad je potrebno da on definie podrku za odredene fasickle. Neki ISP provajderi
trae da za svoje PHP skriptove koristite drugu ekstenziju, kao to je, na primer, .php5, u sluaju
verzije PHP5.
NAPOMENA
Da li za PHP skriptove morate da imate specijalna podeavanja pristupa u sluaju da koristite
Unix? Moraju li datoteke da budu definisane kao izvrne? Ne, jednostavna podeavanja 644 (ne 755)
e biti dovoljna.
Ako koristite IIS, treba da u datoteci php.ini proverite da li stoji cgi.force_redinect = 0. Prema
instrukcijama za instalaciju podeavanje se mora isvriti na ovaj nain. Ako tog reda nema u ovoj
datoteci, dodajte ga.
Na kraju moete i da pogledate odeljak "Problemi" u instrukcijama za instalaciju. PHP FAQ
(najee postavljana pitanja) na adresi www.php.net/FAQ.php mogu da pomognu pri reavanju
problema, a isto vai i za pitanja na adresi www.php.net/man-ual/faq.installation. Moete da proverite
i u arhivama za instalaciju PHP-a, na adresi http://marc.theaimsgroup.com/?l=phpinstall/r=l/w=2 ili u novostima na adresi alt. php ili comp. lang. php.
Meanje sa HTML kodom
PHP datoteke najee predstavljaju meavinu HTML-a i PHP skriptova. Postavljanje HTML-a i
PHP skriptova u isti dokument nije problem, poto se PHP iskazi nalaze izmeu oznaka <?php i ?>,
to znai da server moe lako da ih prepozna.
Ve znate kako HTML radi na Web stranama. Ako, na primer, ubacite neki HTML kod koji
prikazuje tekst, tekst se prikazuje kada Web server stigne do reda na strani u kome se nalazi taj
tekst. Slino tome, ako PHP skript kreira neki tekst koji treba da se ubaci na Web stranu i poalje
nazad do pretraivaa, tekst se na stranu ubacuje na mestu gde je bio skript.
Pogledajte primer 1.1, phphtml.php. U datoteci se nalazi meavina HTML-a i PHP-a. Kao to
vidite, HTML definie naslov dokumenta (koji se prikazuje u zaglavlju pretraivaa), pri emu se preko
oznake <H1 > prikazuje tekst Mixing HTML and PHP, i to velikim masnim slovima.
<HTML>
<HEAD>
<TITLE>
Mixing HTML and PHP! </TITLE> </HEAD>
<BODY> <H1>
Mixing HTML and PHP! </H1> <?php
phpinfo();
?> </BODY> </HTML>
Nakon HTML elementa <H1> server nailazi na PHP skript, to znai da se izlaz iz funkcije
phpinfo ubacuje na Web stranu, koja se alje nazad do pretraivaa. Izlaz se ubacuje ba na torn
mestu. Kao to znate, funkcija phpinfo kreira HTML tabelu sa informacijama o instalaciji PHP-a, tako
da rezultat treba da izgleda kao na slici 1.1. Prvo se prikazuje HTML zaglavlje, a onda sledi tabela sa
informacijama o PHP-u.
<HTML>
<HEAD>
<TITLE>
Mixing HTML and PHP! </TITLE> </HEAD>
<BODY> <H1>
Mixing HTML and PHP! </H1> <?php
phpinfo();
<IMG SRC="php- power-white.gif">
</BODY> </HTML>
?>
<HTML>
<HEAD>
<TITLE>
Using the echo statement </TITLE> </HEAD>
<BODY> <H1>
Echoing some text: </H1>
<?php
echo "Hello from PHP.";
? >
Poto na HTML strani moete da imate vise razbacanih skriptova, tekst moete da prikazujete
na vise mesta. To smo pokazali na primeru 1.2, echo.php.
<HTML>
<HEAD>
<TITLE>
Using the echo statement </TITLE> </HEAD>
<BODY> <H1>
Echoing some text: </H1> <?php
echo "Hello from PHP. ";
?>
<H1>
Echoing some more text:
</H1> <?php
echo "Hello from PHP again!";
?>
<IMG SRC=11 php - power - white. gif" > </BODY> </HTML>
Slika 1.6
Upotreba iskaza echo
Tekst koji elite da prikaete moete da stavite pod jednostruke ili dvostruke navodnike. Preko
ovog iskaza moete da prikazujete brojeve bez navodnika. To izgleda ovako:
Echo 111555;
Poto ono za ta koristimo iskaz echo ide na Web stranu (osim ako PHP pozivate sa komandne
linije), moe biti korisno da na taj nain aljete i HTML oznake nazad do pretraivaa. Na primer, ako
elite da se svaka re pojavi u drugom redu, moete da HTML iskaz <BR> upotrebite na sledei
nain:
echo "Hello<BR>from<BR>PHP.";
Dodatna snaga kod tampanja
Izmedu prikazivanja teksta na komandnoj liniji i u pretraivau postoji razlika. U pretraivau
moete da koristite HTML elemente, kao to su <br> ili <P> i da tako formatirate svoj tekst. Kada
tekst tampate sa komandne linije, za formatiranje moete da koristite specijalne karaktere (ako
tekst stavite pod dvostruke navodnike). Evo koji su karakteri specijalni:
\ n
Novi red
\ r
Return
\t
Tab
\\
Prikazuje se \
\$
Prikazuje se $.
\"
Prikazuje se ".
\0
do \777
Prikazuje se karakter koji odgovara heksadecimalnom
(sa osnovnom 8) kodu.
\x0 do \xFF Prikazuje se karakter koji odgovara heksadecimalnom (sa
osnovom 16) kodu.
Na primer, iskaz echo "Line l\nLine 2" prikazuje tekst "Line 1" u jednom redu i "Line 2" u
sledeem (ako PHP radi na komandnoj liniji). U pretraivau karakter \n ne znai nita. Isti rezultat
biste dobili ako biste napisali "Line 1 <br> Line 2".
NAPOMENA
Ako tekst prikazujete u pretraivau, morate ga formatirati pomou HTML oznaka. Ako u tekst
stavite nove redove, nee se nita desiti, poto pretraiva zanemaruje te nove redove, kao i na bilo
kojoj Web strani. Ako elite da tekst formatirate na neki nain, morate koristiti PHP skript i u
pretraiva slati ispravan HTML kod.
Ako elite, moete da dugaak string koji je pod navodnicima u Vaem skriptu razloite na
nekoliko redova. Ti novi redovi e se prikazati ako tampate sa komandne linije. Ako tampate sa
Web strane, prekidi redova e se zanemariti.
<?php
echo "This text spans multiple lines.";
?>
Stavke koje tampate moete i da odvojite zarezima. Evo kako se to radi: echo "Hello", "this",
"is", "PHP.";
Sve stavke koje ste na ovaj nain odtampali tampaju se jedna iza druge: HellothisisPHP.
Ako elite da izmedu red ubacite razmake, moete da uradite sledee: echo "Hello ", "this ",
"is 11, "PHP.";
Tada ete dobiti: Hello this is PHP.
Ako elite da odtamapte neki specijalni karakter (kao to je "), a da pri tome ne naredite PHP-u
da prekine tekst (poto je " oznaka za kraj teksta), moete da koristite \". Evo kako se to radi:
echo "He said, \"I like ice cream.\"";
Ovo se naziva izvlaenje (escape) navodnika, tako da PHP prikazuje njega, a ne treti-ra ga kao
oznaku kraj a teksta.
Vise posebnih nizova karaktera moete da u PHP-u spojite pomou take (.). Evo primera:
echo "Hello " . "this " . "is " . "PHP.";
U ovom sluaju PHP uzima izraz "Hello " . "this 11 . "is " . "PHP." i sklapa red zajedno (ovo se
naziva konkatenacija) u jedan niz karaktera. Taj string se nakon toga prosleduje iskazu echo.
Evo nekoliko primera koji pokazuju kako se koristi iskaz echo:
echo
echo
echo
echo
echo
Pored iskaza echo, moete da koristite i PHP iskaz print. On ima istu sintaksu: print "Hello from
PHP.";. Koja je razlika izmeu iskaza echo i print? Nije velika. Print je vise PHP funkcija (pogledajte
Poglavlje 4 o funkcijama), tako da on vraa vrednost koja je uvek 1. Kao i kod drugih funkcija, i ovde
moete da tu vrednost prodtate, ali u ovom sluaju sa njom ne moete mnogo da radite. U vedni
praktinih primera echo i print rade isto, tako da moete da koristite bilo koji od njih.
tampanje dokumenata na lieu mesta
Evo jo jedne opcije za tampanje. Moete da kreirate dokumente na licu mesta, koji tampaju
sve to itaju, sve dok ne dou do tokena za kraj (obino END). Ovaj token mora biti postavljen na
poetku poslednjeg reda. U primeru 1.3 je pokazano kako to izgleda:
Primer 1.3 tampanje dokumenta na licu mesta
<HTML>
<HEAD>
<TITLE>
Displaying here Documents </TITLE> </HEAD>
<BODY> <H1>
Displaying here Documents </H1>
<?php
echo <END
This example uses
"here document" syntax to display all
the text until the ending token is reached.
END;
?>
<BR> <BR>
<IMG SRC=" php - power - white. gif" >
</BODY> </HTML>
Rezultat ovog skripta je prikazan na slici 1.7.
Slika 1.7
Prikazivanje dokumenta na licu mesta
Izvravanje PHP-a sa komandne linije
Pored toga to PHP moete da poveete sa Web serverom tako da taj server ita skriptove i
izvrava ih, PHP moe da se pokrene i sa komandne linije. To moe biti dobro za testiranje pre nego
to predete na prebacivanje datoteka na raunar ISP provajdera.
PHP je jezik koji se interpretira. To znai da u trenutku izvrenja PHP interpreter ita skript i
interpretira svaki iskaz, konvertujui ga u kod koji raunar moe da izvri. U verziji PHP 5.0 program
koji interpretira komandnu liniju zove se Command Line Interpreter (CLI) i dato mu je ime php.
Program koji radi na Web serveru zove se php-cgi.
PHP moete da sa komandne linije pozovete komandom php. Morate biti sigurni da raunar
moe da pronae php, to znai da morate biti sigurni da je php (fascikla bin PHP-a) u putanji na
raunaru na kojem php radi. Na primer, pod pretpostavkom da imate skript echo.php:
<?php
echo "Hello from PHP.";
?>
Ako je php u Vaoj putanji, onda ovo moete da pokrenete sa komandne linije na sledei nain
(% je oznaka za odziv na svim raunarima, a u konkretnom primeru se podrazumeva da se nalazite u
fascikli na kojoj je i program echo.php):
%php echo.php
biti:
$/usr/local/bin/php echo.php
A na Windowsu $/usr/local/bin/php echo.php
Program CLI ima puno opcija koje se koriste na komandnoj liniji, koje moete koristiti za
podeavanja njegovog rada. Php e Vam "red" sve o opcijama koje postoje ako unesete php -h.
Dobiete punu listu opcija:
%php -h
Usage: php [options] [-f] <file> [--] [args...]
Run interactively
<path>|<file> Look for php.ini file in this directory
No php.ini file will be used
foo[=bar]Define INI entry foo with value 'bar'
Generate extended information for debugger/profiler
<file>
Parse <file>.
This help
PHP information
Syntax check only (lint)
Show compiled in modules
<code>
Run PHP <code> without using script tags <?..?>
<begin_code>
Run PHP <begin_code> before processing input lines
<code>
Run PHP <code> for every input line
<file>
Parse and execute <file> for every input line
<end_code>
Run PHP <end_code> after processing all input lines
Hide any passed arguments from external tools.
Display colour syntax highlighted source.
Version number
Display source with stripped comments and whitespace.
<file>
Load Zend extension <file>.
Ako, na primer, elite da dobijete jednostavnu tekstualnu verziju informacija koje tampa
funkcija phpinfo, moete koristiti opciju -i. To se radi ovako: %php -i. Ve znate da verziju PHP-a koja
se koristi moete dobiti pomou opcije -v (primetiete da CLI na komandnoj liniji "govori" da se
koristi CLI).
%php -v
PHP 5.0.0 (cli) (built: Jul 13 2004 21:39:58) Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.0, Copyright (c) 1998-2004 Zend Technologies
Na Linuxu i Unixu PHP skriptove moete koristiti tako to ete uneti naziv skripta na komandnoj
liniji. Ovo je mogue ako pomou linije koja poinje sa #! ukaete na mesto gde se nalazi PHP (i
skriptu treba da date dozvolu da se izvr{ava):
#! /usr/bin/php
<?php
echo "Hello from PHP.";
?>
Komentari su skriptovima
Do sada smo na Web stranama koristili ili HTML ili PHP skriptove. Njih treba da ita raunar.
Postoji i komponenta koja je namenjena situaciji kada itanje obavljaju ljudi. To su komentari.
Komentari su napomene koje dodajete na svoje PHP strane da biste nekom objasnili ta se
deava. Ovo je bitno zato to se, kada se na dugaak i sloen skript vratite posle due vremena,
verovatno neete seati ta se u njemu radi. Moe se desiti i da svoj skript date nekom drugom. Tada
su potrebni komentari. Pomou komentara moete da opiete ponaanje skripta, tako da kasnije lako
moete da shvatite o emu je re.
U PHP-u postoje tri tipa komentara. Prva vrsta omoguava da piete komentare u vise redova.
Ovakvi komentari poinju sa /* i zavravaju se sa */ Evo kako to izgleda:
<?php
/* Start by displaying a message to the user */
<?php
/* Start by displaying a
*/
<?php
/* Start by
/* displaying a */ message to the user
*/
<?php
// Start by displaying a
#message to the user
echo "Hello from PHP.";
?>
Ovakvi komentari su takoe korisni, poto se mogu postaviti u liniju u kojoj postoji i kod. PHP e
zanemariti sve to je iza oznake # ili //:
<?php
echo "Hello from PHP.";
//Display a message
echo "Hello from PHP again!";
#Display another message
?>
Ove komentare moete takoe koristiti za kreiranje blokova komentara: <?
php
// Start by displaying a // message to the user
echo "Hello from PHP.";
?>
Da biste napravili neto to zaista privlai panju, moete da napiete:
<?php
##########################
#Start
by
displaying
a
#
#/
message
to
the
user
#
#########################
echo "Hello from PHP.";
?>
U poslednje vreme preovladuju komentari u jednom redu, poto ih je lake napisati, tako da ne
morate da brinete o njihovom zavretku. Komentari u vise redova ipak i dalje imaju svoje mesto,
poto se esto koriste na poetku programa radi objanjenja o emu je u torn programu re. Oni se
takoe ponekad koriste kada se prave sopstvene funkci-je, u kom sluaju komentar moe da objasni
emu funkcija slui i kako se koristi.
Nije loe da u svom kodu koristite komentare koji razjanjavaju ta se deava. Sa druge strane,
ako preterate, moete da zaklonite poentu, ali je, ipak, gore da komentara uopte nema.
Rukovanje podacima: promenljive
Sve poruke koje smo do sada prikazivali bile su fiksne i nepromenljive.
<?php
echo "Hello from PHP.";
?>
Ovim se samo prikazuje tekst i nita vise. Ako bi to bilo sve, PHP ne bi ni bio potre-ban - isti
efekat bi mogao da se postigne korienjem HTML-a. Sutina PHP-a je u dina-mikom rukovanju
podacima. Za tu svrhu se koriste promenljive.
Promenljive su kontejneri podataka. Recimo, na primer, da prodajete eire preko Weba i da
elite da proverite ukupne zalihe u sva tri magacina, koji se nalaze u ikagu, Tokiju i Parizu. Da biste
to uradili, morate da zajedno ubacite tri posebne vrednosti. PHP ima ugraenu podrku za
matematike operacije nad podacima, ukljuujui i sabiranje. Prema tome, da biste sabirali vrednosti,
moete da koristite operator +. Sledei skript, na primer, tampa "I have 6 tomatoes" (Imam est
paradajza).
<?php
echo "I have " , 1 + 2 + 3 , 11 tomatoes";
?>
Primetiete da smo ovde koristili brojeve, to je razliito od obinog teksta. Poto brojevi nisu
tekst, nisu pod navodnicima. Rezultat je dobar, ali je jo uvek statiki, poto smo u skript
jednostavno stavili 1+2+3. Kako emo sabrati brojeve koji pokazuju koliine eira u ikagu, Tokiju i
Parizu?
To je trenutak kada "u igru" ulaze promenljive. U PHP-u one poinju oznakom za dolar $.
Promenljive mogu da sadre podatke; ako u promenljivim pod nazivima $ikago, #tokyo i $paris
smestite broj eira, evo kako biste mogli da to sabirate u vreme izvrenja:
<?php
echo "I have " , $chicago + $tokyo + $paris , " party hats!";
?>
Ispravan naziv promenljive u PHP-u poinje slovom ili podvlakom, iza ega sledi proizvoljan broj
slova, broja ili podvlaka. Naziv moe imati proizvoljnu duinu. Evo nekih ispravnih naziva
promenljivih: $pizza_temperature, $_number_of_tigers, $planet_number_9.
Kao to vidite, promenljive se ponaaju kao skladite za podatke. Kako ete te podatke smestiti
u promenljive?
Dodeljivanje vrednosti promenljivim
Kada u PHP-u elite da kreirate promenljivu, podatke joj dodeljujete pomou operatora dodele.
Operatore dodele koji postoje u PHP-u emo detaljnije predstaviti u Poglavlju 2, a sada emo objasniti
samo onaj koji se najvie koristi - operator jednako =. Evo jednog primera u kojem se koristi operator
jednako za dodeljivanje vrednosti novim promenljivim (nakon to se ovaj program izvri, promenljiva
$temperature e imati vrednost 69, vrednost $pi iznosie 3.14159265, itd).
Stemperature = 69; $number_of_earths = 1; $pi = 3.1415926535; Sreassurance =
"No worries.";
Primetiete da smo nekim promenljivim dodelili brojane, a nekim tekstualne vrednosti. U
pojedinim jezicima morate da zadate tip promenljive (na primer, string ili integer), ali u PHP-u to ne
vai, pa je sve mnogo lake.
NAPOMENA
Raunar interno za skladitenje koristi tipove podataka, tako da treba da znate ta moe da se
desi ako podatke nepravilno unesete. Vise detalja o tipovima podataka moete pronai u odeljku
"Rukovanje tipovima podataka" u ovom poglavlju.
Pogledajte primer phpvariables.php, koji smo dali u primeru 1.4. U ovom sluaju smo
promenljivoj Sapples dodelili vrednost 1, a zatim smo prikazali vrednost koja je u toj promenljivoj.
echo "Setting number of apples to 1.<BR>"; Sapples = 1;
echo "Number of apples: ", Sapples, "<BR>";
Recimo da sada elite da poveate broj jabuka za tri. To moete uraditi ako vrednosti Sapples
dodelite trenutnu vrednost Sapples, uveanu za 3, nakon ega novi rezultat treba da se prikae.
echo "Setting number of apples to 1.<BR>"; Sapples = 1;
echo "Number of apples: ", Sapples, "<BR>"; echo "Adding 3 more apples.<BR>"; Sapples
= Sapples + 3;
echo "Number of apples now: ", Sapples, "<BR>";
Primer 1.4 Dodeljivanje vrednosti promenljivim
<HTML>
<HEAD>
<TITLE>
Assigning values to variables
</TITLE> </HEAD> <BODY>
<H1>
Assigning values to variables </H1> <?php
echo "Setting number of apples to 1.<BR>"; Sapples = 1;
echo "Number of apples: ", Sapples, "<BR>"; echo
apples.<BR>"; Sapples = Sapples + 3;
echo "Number of apples now: ", Sapples, "<BR>";
?> </B0DY> </HTML>
"Adding
more
Rezultat je prikazan na slici 1.8. Sada vidite kako se u vreme izvrenja koristi matematika, kako
se podaci smetaju u promenljive i kako se manipulie podacima.
Slika 1.8
Dodeljivanje vrednosti promenljivim
Ubacivanje promenljivih u nizove karaktera
Vrednosti promenljivih moete prikazati na sledei nain: Sapples = 1;
<HTML>
<HEAD>
<TITLE>
Interpolating variables </TITLE> </HEAD> <BODY> <H1>
Interpolating variables </H1> <?php
echo "Setting number of apples to 1.<BR>"; Sapples = 1;
echo "Number of apples: Sapples <BR>";
echo "Adding 3 more apples.<BR>";
Sapples = Sapples + 3;
echo "Number of apples now: Sapples <BR>";
?> </B0DY> </HTML>
Slika 1.9
Ubacivanje vrednosti promenljivih u nizove karaktera
Ovo ubacivanje je brz nain za prikazivanje sadraja promenljive, ali ta uiniti ako promenljiva
$text sadri tekst "news", a Vi elite da na izlazu dobijete re "newspaper"? Mogli biste da
probate sledee:
<?php
$text = "news";
echo "Where's the Stextpaper <BR>";
?>
PHP ovo nee razumeti, poto izgleda kao da se koristi promenljiva pod nazivom Stextpaper.
Greka koju ete dobiti je:
PHP Notice: Undefined variable: textpaper in C:\php\t.php on line 4
Ispravan nain da se ovo uradi je da se promenljive iji se sadraj ubacuje ograde velikim
zagradama. U ovom sluaju to je promenljiva $text (primer 1.6).
<HTML>
<HEAD>
<TITLE>
Interpolating variables </TITLE> </HEAD> <BODY> <H1>
Interpolating variables </H1> <?php
$text = "news";
echo "Where's the {$text}paper.";
?>
</BODY> </HTML>
<BODY> <H1>
Using variable variables </H1> <?php
$apples = 4;
$oranges = 3;
$fruitname = "oranges";
echo "Number of oranges: ${$fruitname} <BR>";
$fruitname = "apples";
echo "Number of apples: ${$fruitname} <BR>";
?> </BODY> </HTML>
Rezultat ovog primera je dat na slici 1.10.
Slika 1.10
Ubacivanje promenljivih promenljivih
Ako u prethodnom primeru ne biste koristili velike zagrade, dobili biste sledei rezultat:
Number of oranges: $oranges <BR> Number of apples: $apples <BR>
Vrlo je vano da shvatite promenljive promenljive. Moda Vam u ovom trenutku to izgleda samo
kao neki kuruiozitet. One su konkretno vrlo korisne kada se radi sa petljama i nizovima, kao to ete
videti u Poglavlju 3.
Kreiranje konstanti
Ponekad neete eleti da promenljiva moe da se menja - eleete da njena vrednost bude
fiksna. Pretpostavimo, na primer, da imate promenljivu pod nazivom $pip koja sadri vrednost broj a
pi. Moe se desiti da se takva vrednost nenamerno promeni, to nije dobro. Reenje je da se napravi
konstanta, ija vrednost ne moe da se menja.
Konstante se kreiraju pomou funkcije define. Konstanti se daju naziv i vrednost koju elite da
joj dodelite: define ("pi", 3.14159265);. Naziv konstante je uvek pod navodnicima, dok je vrednost
koja se dodeljuje pod navodnicima samo ako je re o stringu (nizu karaktera). Pogledajte datoteku
phpconstants. php u primeru 1.8. U ovom primeru se kreira konstanta pod nazivom pi, posle ega
se prikazuje. Obratite panju da, kada koristite konstante, ne koristite prefiks $. Rezultat primera je
dat na slici 1.11.
<HTML>
<HEAD>
<TITLE>
Using PHP constants </TITLE> </HEAD>
<BODY> <H1>
Using PHP constants </H1> <?php
define ("pi", 3.1415926535);
echo "The constant pi holds" , pi,
?>
</BODY> </HTML>
"<BR>";
Slika 1.11
Upotreba konstanti
Ako probate da promenite vrednost ove konstante (na primer, pi = 3.14;), PHP nee to
prihvatiti. ak se ni skript nee pokrenuti.
Poto se ispred konstanti ne stavlja prefiks $, PHP moe da se "zbuni" ako za naziv konstante
upotrebite neku od rezervisanih rei. U listi koja sledi su date kljune rei:
_class
file
function
line
and
default
endif global
print
array die endswitch if
require
as
do
endwhile
include
require_once
break echo eval include_once
return
case
else exception isset static
cfunction
elseif
exit list switch
class empty extends
new unset
const enddeclare for old_function
use
continue
endfor
foreach
or
while
declare
endforeach function
php_user_filter xor
method
Pored ovih kljunih red, postoji i odredeni broj konstanti koje su unapred definisane i koje
moete koristiti u svojim skriptovima. Evo primera:
line
Trenutni broj reda u datoteci
file
Puna putanja i naziv datoteke
function
Naziv funkcije (ovo je dodato od verzije PHP 4.3.0)
class
Naziv klase (ovo je dodato od verzije PHP 4.3.0)
method
Naziv metoda klase (ovo je dodato od verzije PHP 5.0)
php_version
Verzija PHPa
php_os Operativni sistem
default_include_path Gde da PHP trai ono to mu je potrebno
Na primer, ako napiete echo _line_ na odreenoj poziciji u skriptu, prikazae se trenutna linija
koja se izvrava.
Rukovanje tipovima podataka
Vi ne moete da odluujete o nainu na koji se Vai podaci interno skladite. O tome odluuje
PHP. Iza scene, on podrava osam internih tipova podataka (sve tipove ete upoznati u knjizi).
float. Sadri brojeve sa pokretnim zarezom (tip double), kao to su 3.14159 ili 2.7218.
3.1.
<?php
$variable = "0"; // $variable je string podeen na 0.
$variable = Svariable + 2; // $variable je sada ceo broj sa vrednou 2.
$variable = Svariable + 1.1; // $variable je sada tipa float sa vrednou
$variable = 2 + "8 apples"; // $variable je sada ceo broj sa vrednou 10
?>
Ako elite da izbegnete potencijalne probleme sa tipovima podataka, nemojte meati tipove.
ak i ako to uradite, PHP e skoro uvek "uraditi pravu stvar" (na primer, rezultat sabiranja celog i
realnog broja e konvertovati u realni broj, to je upravo ono to treba da se uradi), ali, ako je
potrebno da eksplicitno zadate tip promenljive, uvek moete koristiti iskaz type cast. Novi tip se
stavlja izmedu zagrada odmah ispred naziva promenljive iji tip elite da zadate. Evo nekoliko
primera:
$int_variable
=
(integer)
$variable;
$float_variable
=
(float)
Svariable;
$string_variable = (string) Svariable;
Evo nekoliko saveta u vezi sa meanjem tipova podataka. Kada konvertujete u tip boolean,
smatra se da su vrednosti tipa FALSE (o tome e biti vise red kasnije u ovoj knjizi):
boolean false
integer 0
float 0.0
Svaki drugi tip se smatra da je true (ukuujui i resource). Kada konvertujete u tip integer:
Boolean false e dati 0 (nula), a Boolean true e dati 1 (jedan).
Vrednosti tipa float se zaokruuju prema nuli.
Kada konvertujete tip float, konverzija je ista kao kad je vrednost konvertovana u integer, a
onda u float. Konverziju moete da vrite i iz integera u numerike tipove, ali to ponekad moe biti
komplikovano (vise detalja sadri Poglavlje 3).
U narednom poglavlju ete poeti kontrolu svojih podataka u PHP skriptovima pomou
operatora i iskaza za kontrolu toka i petlje, to je veoma bitno za svakog PHP programera.
Zakljuak
PHP omoguava da strane "oive" na nain na koji to nije mogue sa statikim strana-ma. Evo
nekoliko najbitnijih napomena za poetak.
Svoju instalaciju PHP-a ete proveriti ako na komandnoj liniji otkucate php -v.
Da biste radili sa PHP-om, morate da podesite razvojno okruenje, koje ukljuuje i neki editor
teksta ili PHP IDE. Razvojno okruenje bi trebalo da sadri i neki nain za instalaciju PHP strana tamo
gde server moe da ih proita.
U PHP skriptovima se izvrni kod nalazi izmeu oznaka <? i ?>. Na istu stranu moete da ubacite
i HTML kod, sve dok je taj kod izvan ovih oznaka.
Dokumenti tipa here omoguavaju tampanje svake rei u tekstu dok se ne stigne do odredenog
tokena.
Ispred naziva promenljivih stavlja se $. Ispravan naziv promenljive je onaj koji poinje slovom ili
podvlakom, a slede slova, brojevi i podvlake.