You are on page 1of 56

Learning PHP & MySQL

Updatesofts.com

Ci t Web server - bc u tin hc PHP!


"Trng hc" va khai ging, trong lc i bi hc u tin ra l, cho php t c "ma ru qua mt th ci"! Nh bc ngocha85 ni, hc PHP v MySQL, mt trong nhng th cn chun b l web server chy trn PC ca mnh. cho nhanh chng, theo t tt nht nn ci b XAMPP. Cu hi 1: XAMPP l g? Tr li: XAMPP ging vi WAMP, ngha l ngi mi hc ko cn phi bit cch ci t ring l tng thnh phn nh Apache, PHP v MySQL. Ch cn download mt gi v l xong. Cc tnh nng c trong XAMPP: 1. Apache 2 => server 2. PHP 5 => ngn ng lp trnh 3. MySQL => c s d liu 4. Webalizer => qun l statistic ca site 5. Mercury => gi lp gi email 6. FileZilla => gi lp FTP server 7. Rt nhiu tnh nng chuyn su khc... Cu hi 2: Ti sao ko dng WAMP? Tr li: V ci ny t cha dng bao gi + Ci ny bc ngocha85 chc s gii thiu => trnh ng hng l hn. Vi li ci XAMPP ny theo t cng rt hay, thm ch ko cn ci t, ch cn copy v chy. Cu hi 3: Down XAMPP u? Tr li: y: http://www.apachefriends.org/en/xampp.html C b XAMPP cho Windows, Linux, MacOS v c Solaris, v vy mi h iu hnh n u chp tt! Cu hi 4: Ci t v s dng XAMPP nh th no? Tr li: Sau khi ti v, bn s c 1 file zip. Gii nn file ra 1 th mc bt k, v d C:\XAMPP. chy web server, bn kch hot file xampp_control.exe, bm nt Start bn cnh Apache v nt close XAMPP Control t ng chuyn xung system tray. Ngoi ra, bn c th khi ng MySQL nu dng c s d liu, FileZilla nu dng FTP v Mercury nu dng email. bit chc web server chy ng, bn m trnh duyt web ca mnh, g http://localhost vo thanh Address, sau enter. Mt trang thng bo s hin ra, cho bit qu trnh "ci t" hon tt. Cu hi 5: Lm th no chy cc script vit bng PHP? Tr li: Bn cho script vo th mc C:\XAMPP\htdocs\ sau gi file qua URL http://localhost/script_name.php

By TXP Lover, Incomplete, iSheep, Seneken.

Learning PHP & MySQL

Updatesofts.com

Vy l ht "bi chun b cho bi khi ng" ca bc ngocha85 s post trong vi ngy ti. Tn tn ten! Tha thng xng ln, t lm lun bi "Hello World".

Bi 1: Ni "hello world" vi PHP


Cn chun b nhng g? 1. Web server cn m bo sn sng. Apache c khi ng theo bi post trn. 2. Mt script editor. Ci ny c rt nhiu, nh PHP Designer, Dev-PHP, ... Thm ch dng notepad cng c. Nhng tt nht nn dng mt editor c h tr unicode. Nh t dng SCiTE. Bn vo trang ny xem list v review cc PHP editor: http://www.php-editors.com/ 3. 5 pht thi gian rnh ri. Bt u!!! 1. To mt file mang tn "helloworld.php" trong th mc htdocs. M file bng script editor. 2. G on code sau vo editor:
PHP Code:

<?php echo "Hello World!"; ?>

3. M trnh duyt web, g http://localhost/helloworld.php [enter]. 4. Nhm mt li trong 0.0001 giy. Nu m mt ra m bn thy dng ch Hello World l thnh cng ri ! Gii thch 1. Dng th nht ca file helloworld.php l "<?php" v dng cui cng l "?>". y l 2 th (tag) bo cho server bit im bt u v kt thc ca mt on code PHP. Ni cch khc, bng cch ny bn c th nhng code PHP trong bt c file HTML c sn no. Khi thc thi file PHP, web server s ch thc hin nhng on code t trong 2 th ny v b qua tt tn tt nhng phn cn li. 2. Dng 2 l mt lnh ca PHP: Lnh echo. Lnh ny lm nhim v in mt xu ra ngoi mn hnh. Cn nh mt lnh PHP lun kt thc bng du chm phy ";". Nu thiu d ch mt du chm phy, code ca bn s ko chy v dng li biu tnh ngay. 3. Cng dng 2, xu "Hello World" c t trong du ngoc kp. Nu ko, s c li. Mt vi cu hi 1. C cn thit phi trnh by nh trn ko? => Ko. Bn c th trnh by code theo bt c cch no bn mun. Li vo 10 du cch, mi dng cch nhau 3 hng, ... iu l ty bn. Tuy nhin cn phi vit code cho tht d c v d hiu tin cho vic sa i v chia s code sau ny. 2. C cch no bo hiu mt on code PHP ngoi cch dng <?php ko? => C. Nhiu cch l ng khc. V d bn c th vit

By TXP Lover, Incomplete, iSheep, Seneken.

Learning PHP & MySQL

Updatesofts.com

PHP Code:

<? // Code y ?>

Tuy nhin cc cch khc u t thng dng v c khuyn co ko nn s dng. 3. C th t xu Hello World trong du ngoc n ko? => C th. Bn c th dng du ngoc kp v du nhy n cha xu. S khc nhau gia chng s c tho lun sau. 4. Nu trong xu cng c du ngoc / xu l mt on vn bn rt di th sao? => Ko c g phi lo lng. Ci g cng c cch gii quyt. Vn l cch ko nm trong bi hc hm nay. Ht 5 pht ri, bn hy ngh ngi . :P Bi tp V Bi 1 ht sc n gin, ch theo tinh thn Hello World nn bi tp cng s ch c bi, v cng rt rt n gin. Hy cho bit li sai trong cc on code sau: 1.
PHP Code:

echo "Hello World!";

2.
PHP Code:

<?php echo "Hello World!" ?>

3.
PHP Code:

<?php echo "Hello World!'; ?>

4.

By TXP Lover, Incomplete, iSheep, Seneken.

Learning PHP & MySQL

Updatesofts.com

PHP Code:

<?php echo "Hello World!"; ?>

Bi 2 - Mc 1: Lu tr d liu trong PHP. Vi iu cn ni v bin.


Trc khi bt u bi 2, t xin trnh by v cch ch thch (comment) trong PHP. y c th coi l mt k nng cng c, v bn rt KHNG NN vit code m ko c ch thch. C th on code rt d hiu vo thi im vit, nhng nu ko c ch thch, ch vi thng sau bn c th qun ngay mnh vit ci g. Vit ch thch ngay vo thi im code l cch tt nht. Trong PHP, mt dng ch thch c t sau 2 du s cho // V d
PHP Code:

// y l mt dng ch thch

Nu ch thch ca bn di hn 1 dng, bn c th n trong 1 block, m u bng /* v kt thc bng */


PHP Code:

/* Ch thch dng th nht Th 2 Th 3 Vn vn... */

Cn mt cch na, KHNG ph bin (t ra l t thy th), l ch thch t sau du #. Ch thch ny cng ch cho php 1 dng ging nh // Mt iu khc cng rt cn ch l PHP ko cho php t ch thch trong ch thch (nested comment). Ta bt u vo Bi 2.

Bi 2: Lu tr d liu trong PHP


Khi bt tay vo lp trnh mt chng trnh, hin nhin ta s cn phi lu tr d liu. C th, d liu c th c lu tr bng bin (variable). Khc vi cc ngn ng lp trnh khc, trong PHP cc bin ko cn phi khai bo (declare) trc khi s dng. s dng bin, bn ch cn gn (assign) cho n mt gi tr (value). Bin s t ng c to. Cc k n gin v nhanh chng!
By TXP Lover, Incomplete, iSheep, Seneken. 4

Learning PHP & MySQL

Updatesofts.com

1. Bin. Khai bo. t tn. Bin trong PHP bt u bng du dollar ($), theo sau l tn bin. Tn bin c th bt u bng du gch di (_ gi l underscore) hoc ch ci. Tip sau l cc ch ci, s hoc li l du gch di. Mt s k t m rng (extended character) c th c s dng, nhng tt nht l nn trnh. Mt s v d v bin NG: $uds, $update_softs, $uds_has_more_than_26000_members Bin sai: abc v thiu du dollar, $124adfd v bt u bng s Cng cn tho lun thm mt cht: Cng v s d di trong vic ko phi khai bo bin nn s c lc bn g nhm tn bin. V d $uds g thnh $usd (c!) V d:
PHP Code:

<?php $uds = "Welcome to UDS!"; echo $uds; ?>

May mn lm sao, t bn PHP 5 tr ln, s c mt cnh bo (warning) khi bn chy script, cho bit bn cha gn gi tr cho bin $usd. , cn mt vn cha ni n: l trong PHP, tn bin C phn bit ch hoa ch thng (case-sensitive). Ngha l $uds hon ton khc vi $UDS hay $uDs. Ni chung nn trnh vic t tn bin ch khc nhau cch vit hoa thng ny, va mt cng gi Shift, va nh nhm tn bin. Mc 2 s mang tn Mt s kiu d liu trong PHP. Mi ngi n c nh! Bi tp Trong cc bin sau y, bin no c t tn ng, bin no b t tn sai: 1. this_is_a_variable 2. $yet another variable 3. $simplevariable 4. $blah_blah_blah_123456789_______ 5. $123456789_____abacabadfskdjsfksdfkdserwuewrjfdksj fdksljf 6. $^^ 7. $___A___VARIABLE____ 8. $THiS_iS_THe_LaST_ONe

Bi 2 - Mc 2: Lu tr d liu trong PHP. Mt s kiu d liu c bn [updated]

By TXP Lover, Incomplete, iSheep, Seneken.

Learning PHP & MySQL

Updatesofts.com

Ngoi l mt cht: Lc u t cng ko nh tch Bi 2 ra lm my thread, nhng nu nh th kia th di qu, s c theo cc bc mt mt => nn lng. Ta c mt s kiu d liu c bn sau y trong PHP: a. Kiu s (number) b. Kiu xu (string) c. Kiu boolean (boolean) a. Kiu s Trong kiu s (li) c 2 kiu c bn khc: S nguyn (int) v s thc (float). S nguyn c th biu din bng s thp phn (h 10 - decimal), h 8 (octal) v h 16 (hexadecimal). V d ta gn gi tr cho mt s bin kiu NGUYN nh sau:
PHP Code:

<?php $a = 27; $b = -27; $c = 027; $d = -027; $e = 0x27; $f = -0x27; ?>

v d trn, c 6 bin t $a n $f u c gi tr l 27 hoc -27. Tuy nhin, vi bin $a v $b, ta dng kiu biu din s thp phn (vit nh s ta vit hng ngy). Vi $c v $d, dng kiu s h 8 (bt u vi ch s 0). Vi $e v $f dng kiu h 16 (bt u vi ch s 0 v ch ci x). Nu tng hc qua Pascal, chc chn bn s hi t: Th nu t dng 1 bin kiu int, gn cho n mt gi tr cao bng max ca int, th khi em s cng vi 1, gi tr c b chuyn thnh m do trn s (overflow) ko? Cu tr li l ko. Mt bin kiu int c gi tr cc ln trong PHP l 2147483647, khi cng 1 vn s tr gi tr ng l 2147483648, nhng ln ny s thuc kiu float. Ni cch khc, PHP t chuyn s b trn ln kiu float. Nu thch t cu hi, chc chn (li mt ln na) bn s hi t: Sao cu bit iu y? Cu tr li rt n gin: Bn hy cng t lm v d vi on code sau:
PHP Code:

<?php $a = 2147483647; var_dump($a); $a = $a + 1;

By TXP Lover, Incomplete, iSheep, Seneken.

Learning PHP & MySQL

Updatesofts.com

var_dump($a); ?>

Sau khi chy script, kt qu tr v s l int(2147483647) float(2147483648) => ng nh t ni nh! T xin gii thch nh th ny: dng th nht, ta em gn gi tr 2147483647 cho $a. y l mt gi tr cc to, nhng vn nm trong int, v vy $a s thuc kiu int. Dng th 2 v th 4, ta dng lnh var_dump($a); y l lnh in ra kiu v gi tr ca mt bin trong PHP. Ch nh, lnh ny kh ph bin v hay c dng debug code. dng th 3, ta dng lnh gn $a = $a + 1; Vi cc bn hc lp trnh, iu ny chng c g kh hiu. Sau khi thc thi lnh, $a s mang gi tr ca $a cng thm vi 1. Cn nu (chng may) bn cha hc lp trnh bao gi, th t (li) xin gii thch nh th ny: - Du bng y l lnh gn, em gi tr ca v phi gn cho v tri, ch ko phi l du bng trong biu thc ton hc m mnh vn hc. Do , ko c g l tri vi l t nhin c. :P Mt iu khc m bn nn nh, l hy THT cn thn khi s dng s kiu float trong PHP. N lun ch l nhng gi tr xp x, v ko h chnh xc tuyt i. Do tt nht l chuyn s float sang int khi c th. Cch lm s c tho lun sau. Gi ta sang kiu xu. b. Kiu xu nh ngha mt ci no: Xu l mt chui cc k t. Mt cu t x pam l mt xu. C ci bi vit ny cng c th l mt xu. s dng xu, c 3 cch (hic, bt u phc tp ri => mi ngi ng dy vn vai ci cho tnh to! :P): Cch 1 l dng nhy n. Cch 2 l dng ngoc kp (hay gi l nhy kp g cng c). Cch 3 l dng kiu HEREDOC. Ni r nh: Cch 1: Xu c t trong du nhy n.
PHP Code:

<?php echo 'y l xu t trong du nhy n'; ?>

S c bn hi t (sao hi nhiu th!): Trong xu c th t du nhy n c ko? Kiu nh


By TXP Lover, Incomplete, iSheep, Seneken. 7

Learning PHP & MySQL

Updatesofts.com

xu l I'm a student . Cu tr li l bn phi thm mt du sc (hay suc g ) trc du nhy n "bt thng" . Nh th ny:
PHP Code:

echo 'Trong nhy n li c mt nhy n nh th ny \', v nh th ny na \'.';

t ci du (\) gi l "escape the character". Ni nh nh: Bi t vit hay chn ting Anh vo l cc bn "b ng" khi c tut hay doc bng Eng. Mt ln na, (li) c mt cu hi c t ra: Nu trong xu cng c mt du \ th sao? Cu tr li cng rt gin d: Dng thm mt du \ na ngay trc du \ . Nh th ny \\ Ln ny, s ko c mt cu hi, m s l mt ting th di: Sao lm th th? Cn ci du no phi "escape" nh du \ v ' ko? C. l: 1. \n : Bo hiu xung dng trong PHP. Ging nh <br /> trong HTML. 2. \t : Thay mt cho Tab 3. \$ : Du dollar (trnh "cnh tranh lnh mnh" vi tn bin m! :P) 4. ... gp ni sau. Ni nhiu e "tu ha nhp ma" cht! Qun mt, tr \' v \\, my ci escape ny ch dng trong trng hp xu t trong du ngoc kp. H h, li qun mt iu phi ni trc khi chuyn qua phn k tip: Nu trong xu ta ko thm dng du \, cng kc thm dng du ', m dng c \' cho "dn chi" th sao? Tr li: Th c lm nh bnh thng thi. Nh th n: \\\'. Du \ th 1 escape cho du \ th 2. Du \ th 3 escape cho du ' cui cng. Thng thi! Cch 2: Xu c t trong du ngoc kp (hay nhy kp - whatever) Trng hp ny rt ging vi s dng du nhy n ni trn.
PHP Code:

<?php echo "Xu ny t trong du ngoc kp"; ?>

S d ni RT ging m ko phi HON TON ging v gia chng c im khc nhau: Khi thc thi, PHP s tm v thay th trong xu nhng k t c bit c escape (nh \n, \t...) nh ni trn, cng vi cc bin (nu c) trong xu. V d:
PHP Code:

<?php $a = 1; By TXP Lover, Incomplete, iSheep, Seneken. 8

Learning PHP & MySQL

Updatesofts.com

echo "Bin \$a c gi tr l $a"; ?>

S cho ta kt qu: Bin $a c gi tr l 1 Trong khi , nu s dng du nhy n:


PHP Code:

<?php $a = 1; echo 'Bin \$a c gi tr l $a'; ?>

Li in ra: Bin \$a c gi tr l $a iu cho thy: Khi s dng du nhy n, gi tr ca bin trong xu, cng vi cc k t c bit cn escape s ko c in ra. Cc bn nh k iu ny nh! Ta sang cch th 3: Xu t trong cu trc HEREDOC cch 1, PHP s nhn thy 1 xu c bt u vi du nhy n th nht v kt thc vi du nhy n th 2. Tng t vi cch 2, nhng l du ngoc kp. cch 3 ny, PHP s coi mt xu bt u bng 3 du nh hn vit lin nhau <<<, i km vi 1 tn nh danh (identifier) ty bn t tn, v d l HERE, kt thc l tn km theo du ; Nghe c v hi phc tp, nhng bn hy cng t g v d sau: (ch l ch HERE c th thay bng bt c ch g, tn bn chng hn, min l n tun theo nguyn tc t tn bin ca PHP. , m nh l m bng <<<HERE th phi ng bng HERE; nh, ko c m ca ra vo, ng ca s u!)
PHP Code:

<?php echo <<<HERE Xu &#273;c ghi dng th nht Dng th&#7913; 2 Dng th&#7913; 3 Vn vn HERE; ?>

Nhn vo v d trn, bn c nhn xt g?

By TXP Lover, Incomplete, iSheep, Seneken.

Learning PHP & MySQL

Updatesofts.com

Th nht, xu ko nht thit phi thuc mt dng. N ko nht thit phi ngn gn, m c th di "trng giang i hi" ra my chc dng cng c. iu ny rt tin nu bn mun echo mt lc c mt bi th chng hn! Th hai, ch HERE; dng cui cng t ko cn l vi ch echo dng 1. l LUT, d t thy hi "bt cng" v "nghit ng" mt t: - Sau <<<HERE phi xung dng. Ko c php c d ch 1 k t trng (du cch ) - Trc v sau HERE; cng th. Ko c php c d ch 1 k t trng. Ni cch khc, ng di g cn l cho dng ny. Ci g l LUT th phi THEO, ci ko c
Quote:

Cn nu ko theo, PHP s bo li:

Parse error: parse error, unexpected T_SL in E:\XAMPP\htdocs\test.php on line 2

T ni dng di nh vy l v tng mt bao nhiu thi gian mi tm ra c li sai ca mnh. Ch v mt du cch m chng trnh nh cng, ko thm chy! Kinh nghim xng mu! Cn mt na: Nu t ny n gi bn ch c "chay", ko thc hnh th (cha chc) nhn thy: Khi chy chng trinh, thay v in ra my dng nh trn, PHP li in mi th ra cng 1 dng:
Quote:

Xu c ghi dng th nht Dng th 2 Dng th 3 Vn vn

Sa cha iu ny cng kh n gin:


PHP Code:

<?php $s = <<<HERE Xu &#273;c ghi dng th nht Dng th&#7913; 2 Dng th&#7913; 3 Vn vn HERE; echo nl2br($s); ?>

C g b n y ko? Thay v echo thng my dng kia ra, ta i "vng vo" mt cht bng cch gn xu cha my dng cho bin $s, sau echo nl2br($s) ra mn hnh. nl2br() c gi l mt hm (function). N nhn mt xu lm tham s (parameter), y l xu $s, sau in ra theo lut: C gp du xung dng trong code l chuyn thnh du xung dng trong HTML.

By TXP Lover, Incomplete, iSheep, Seneken.

10

Learning PHP & MySQL

Updatesofts.com

Ci tn nl2br cng chng phi thn ch g kh nh, n rt gin d: ch l vit tt ca new-line-tobr. New-line l du xung dng trong code, 2 l to , br l <br /> (th xung dng trong HTML). Vy l vn c gii quyt. Kt qu in ra ng nh mong i:
Quote:

Xu c ghi dng th nht Dng th 2 Dng th 3 Vn vn

Kiu d liu c bn cui cng m t s ni ti chnh l Kiu boolean. c. Kiu boolean y l kiu d liu n gin nht trong PHP ( qu!). tng rt n gin: Mi th ch thuc vo 1 trong 2 loi: ng hoc Sai, C v Khng, 1 v 0. Khng c ngoi l. Anh ko l True th s l False. y ko c ch cho ngi ba phi!!! Gi tr ca bin kiu boolean l TRUE hoc FALSE. Hai t ny hon ton ko phn bin hoa thng, v vy c th vit nh th no cng c: TRue, tRUe, true, ... V d:
PHP Code:

<?php $a = TRUE; $b = false; ?>

Mt kiu d liu n gin ng ngha vi vic ko cn gii thch nhiu v v d ca n. Nhng n li ko ng ngha vi vic: Kiu boolean chng c g ng ni! Thc t l kiu ny rt hay dng trong PHP, v d khi tnh ton mt biu thc v xem gi tr ca n c ln hn mt s no y hay ko... (biu thc iu kin) Xin c kt thc Bi 2 ti y. Cm n qu v quan tm theo di... COMING UP NEXT: Mt s hm cn thit khi debug code

Bi 2 - Mc 3: Cc kiu d liu quan trng khc


Tip sau mc 2: Cc kiu d liu c bn, t xin gii thiu thm mt vi kiu d liu quan trng khc ca PHP: Mng, i tng, Null v Resource (sozy v 2 kiu cui ko r dch nh th no) 1. Mng (array)
By TXP Lover, Incomplete, iSheep, Seneken. 11

Learning PHP & MySQL

Updatesofts.com

Mng c s dng khi bn mun lu tr mt s lng ln cc bin. Mt v d ht sc n gin: Mt lp c 50 hc sinh, v bn mun qun l c 50 hc sinh . i din cho mt hc sinh, tt nhin bn s mun 1 bin. Nhng nu t tn l hs1, hs2, ... hs50 th qu l qu mt thi gian! V y chnh l l do mng c "t dng v". Mng cha rt nhiu gi tr (value), mi gi tr c truy cp nh kha (key). Kha c th ch l nhng s m thng thng nh 1, 2, 3, hay c th l xu, nh "abc", "def", "ghi". Mng c kha l xu nh vy c gi l associative array. khai bo mt mng, chng ta c th s dng cch nh v d sau:
PHP Code:

<?php $a = array(1, 2, 3, 4); $b = array("a", "b", "c"); $c = array(1, "a", array(3, 4)); ?>

Nh v d trn, $a, $b, $c u l mng. Mng $a cha cc s t 1 n 4, mng $b cha cc xu "a", "b", "c". Cn mng $c snh iu hn, cha c s ln xu, thm c mt mng bn trong n na. Sau khi khi to gi tr trong mng $a, mc nh mi phn t (element) trong n s c gn cho mt kha l s nguyn. N bt u t 0, ko phi l 1. Do , phn t th 0 s l 1, th 1 s l 2, vn vn. V d:
PHP Code:

<?php echo $a[2]; ?>

S in ra mn hnh gi tr 3 - tc l phn t mang kha l 2 trong mng $a. Nh t ni trn, mt kha c th l mt xu, ngha l ngi ta c th truy cp mng $d (chng hn) bng cch dng $d["blah"]. Vy ta khi to gi tr ca $d nh th no? Rt n gin, ta s dng ton t (operator) =>
PHP Code:

<?php $d = array("blah" => 1, "abc" => 2, "def" => "ghi"); ?>

By TXP Lover, Incomplete, iSheep, Seneken.

12

Learning PHP & MySQL

Updatesofts.com

C th d dng on c: Nu dng lnh echo $d["def"] s cho ra kt qu l "ghi". Tm hiu su thm v Mng, kiu d liu mnh m ca PHP, s l phn vic ca mt Bi hc sau ny. i tng (object) PHP5 l mt ngn ng lp trnh hng i tng (OO - Object Oriented). Ni mt cch n gin nht (nhng vn nghe tai nu bn cha nghe v i tng bao gi) th lp trnh hng i tng (OOP - Object Oriented Programming) l vic to ra mt kiu d liu mi (i tng - object hay lp - class). Thay v vic phi to mt dy cc hm lin quan n i tng , bn s dng thuc tnh (properties) v phng thc (method) trc tip ca i tng . Hy nhm mt vo tng tng. Bn c mt qu bng bay. Qu bng c nhng thuc tnh g? , rt n gin thi: c th l kch thc, mu sc hay cng - xp ca bng. Cn phng thc: Qu bng c th cng ln, hoc xp i. Rt d dng phi ko? Gi hy tng tng, bn c mt i tng mang tn QB (qu bng bng, bn dng lnh:
PHP Code:

). to ra mt qu

<?php $bong = new QB(); ?>

Qu bng c kch thc (KT), mu sc (MS) v cng - xp (CX). $bong mang mu , bn c th vit:
PHP Code:

<?php $bong->MS = red; ?>

Tng t, ni n kch thc, cng - xp ca qu bng, ta c th dng $bong->KT, $bong>CX. Th cn phng thc? Nh ni, qu bng c th cng ln (CL) hoc xp i (XD). thc thi cc phng thc ny, ta lm nh v d sau:
PHP Code:

<?php $bong->CL(); ?>

By TXP Lover, Incomplete, iSheep, Seneken.

13

Learning PHP & MySQL

Updatesofts.com

Tm dng vic "ci nga xem hoa" phn i tng ti y. 3. Null Mt bin c coi l NULL (ko c gi tr) nu n tha mn c 3 iu kin sau: 1. N c gn l NULL (ko phn bit hoa thng) 2. N cha bao gi "c" (hay "b") gn gi tr. 3. N b "x p" bng unset - hm hy b cc bin ch nh. kim tra mt bin c l NULL hay ko, ta c th s dng hm is_null(bin). V d:
PHP Code:

<?php $test = NULL; echo is_null($test); ?>

Cho ra kt qu l 1. 4. Resource C nhng lc PHP cn x l cc i tng nh kt ni c s d liu hay cc i tng ca h iu hnh. Chng s c coi l resource. Ni chung trong hu ht cc trng hp, bn thm ch ko nhn ra vic mnh c phi ang lm vic vi resource hay ko.

Bi 3: Kt hp PHP v HTML
Ni n PHP, ngi ta ni n lp trnh web. Ni n HTML, ngi ta cng ni n lm web. Vy ko c l g HTML v PHP li ko i c cng vi nhau! Bi 3 s cp ti mt vn rt ph bin khi lp trnh PHP: Kt hp m PHP vi HTML. Trc ht, chng ta hy dnh t pht tm hiu cch thc hot ng ca World Wide Web (WWW). Hy tng tng, bn ang mun truy cp trang web www.example.com/welcome.html. Bn m trnh duyt web, g vo a ch: www.example.com/welcome.html v bm Enter. Trang web s hin ra, gn nh ngay tc khc ( y ko ni n mng dial up siu chm nh ) Vy, iu g xy ra t lc bn bm Enter cho n lc trang web xut hin? Hy cng t xem xt nhng on bng "behind the scene" ny: 1. Ngay sau khi bn bm Enter, trnh duyt bn ang dng s gi mt thng ip (message) ln mng, cho bit bn ang mun yu cu (request) trang www.example.com/welcome.html 2. Thng ip c chuyn ti my tnh ti a ch www.example.com/welcome.html 3. My ch trn my tnh s nhn c thng ip v bt u tm kim file HTML c yu cu. 4. My ch gi file HTML v my tnh va yu cu (chnh l my tnh ca bn). Nu ko tm
By TXP Lover, Incomplete, iSheep, Seneken. 14

Learning PHP & MySQL

Updatesofts.com

thy file HTML c yu cu, n gin l my ch s tr li mt thng bo li. 5. Trnh duyt ca bn, sau khi nhn v trang HTML, s hin th n ra mn hnh. bc th 4, nu file bn yu cu l 1 file mang ui .php, thay v gi tr li ni dung nguyn gc ca file, my ch s ln lt thc hin thm cc bc: 1. Qut file trong ch HTML, gi tr v ni dung HTML. 2. Ngay khi gp <?php, my ch s chuyn sang ch PHP, bt u thc thi cc lnh PHP cho n khi gp ?>. Hin nhin nu cc lnh PHP c output, my ch s tr nhng output cho trnh duyt. 3. Kt thc ch PHP (ra ngoi ?>), my ch quay li ch HTML. Qu trnh c th tip tc, cho n khi kt thc file .php. Vy l xong phn ni ngoi l. Gi ta bt u vo Bi 3. Bi 1, t cng cc bn vit chng trnh u tin, Hello World, bng PHP. Gi th nhn mt file .php cng mang ni dung Hello World:
HTML Code:

<html> <head> <title>Hello World</title> </head> <body> <p>Hello World!</p> </body> </html>

Nh v d trn y, cc bn c th thy: y ch n thun l mt file HTML, mang ui .php. Chng c g c bit! V khi trnh duyt yu cu file ny, my ch ch vic gi tr ni dung nguyn gc m ko cn phi x l mt cht lnh no c. Gi hy th nng cp file .php bng cch thm vo n mt cht m PHP:
PHP Code:

<html> <head> <title>Hello World</title> </head> <body> <?php echo "<p>Hello World!</p>"; ?>

By TXP Lover, Incomplete, iSheep, Seneken.

15

Learning PHP & MySQL

Updatesofts.com

</body> </html>

Khi chy script ny, kt qu khi view source code cng ko khc g v d u tin. Ch c cch lm l khc, thay v ch s dng HTML, ta kt hp c PHP v HTML trong cng mt file. Gi, nu ta mun in ra mn hnh ch Hello mt dng, v World mt dng, ta s lm ntn? Nu cc bn c bit v HTML, th s ngh ngay n th <br />:
PHP Code:

<html> <head> <title>Hello World</title> </head> <body> <?php echo "<p>Hello<br />World!</p>"; ?> </body> </html>

Kt qu output tht m mn v chng c g ng ni. Tuy vy, nu cc bn cn nh, t tng ni \n c th dng xung dng trong PHP. Vy, tha thng xng ln, bn s thay <br /> bng \n:
PHP Code:

<html> <head> <title>Hello World</title> </head> <body> <?php echo "<p>Hello\nWorld!</p>"; ?> </body> </html>

Kt qu? Tht bi. Trn mn hnh, ch Hello v World vn nm cng mt dng. Ti sao li nh

By TXP Lover, Incomplete, iSheep, Seneken.

16

Learning PHP & MySQL

Updatesofts.com

vy? Lm th no gii quyt vn ny? Tr li: \n ng l xung dng, nhng l xung dng trong PHP output, n ko m bo vic xung dng khi ci PHP output c trnh duyt x l di dng m HTML. trnh duyt x l chnh xc nhng vn ntn, ta cho ton b xu vo th <pre>, th quyt nh vic gi nguyn nh dng ca xu:
PHP Code:

<html> <head> <title>Hello World</title> </head> <body> <?php echo "<p><pre>Hello\nWorld!</pre></p>"; ?> </body> </html>

Mt ln na, kt qu hin ra tht m mn. Ta xt thm mt v d na.


PHP Code:

<?php print_r($_SERVER); ?>

Script trn lm tr g vy ta? Cha cn bit print_r v $_SERVER l g, bn ch cn thy on n output ra my dng sau: (t phi post nh v UDS ko cho php a on vo bi vit)

By TXP Lover, Incomplete, iSheep, Seneken.

17

Learning PHP & MySQL

Updatesofts.com

Phn ng u tin? Bn s thy hi chng mt phi ko ? Bn s t hi: Nhiu th th kia vit lu ru vo nhau th ai m c c? Ti sao ko tch dng ra ch? , ni n tch dng, bn s nh ngay ti th <pre> m t ni bn trn. Bn s thm n vo script ca mnh:
PHP Code:

<?php echo "<pre>"; print_r($_SERVER); echo "</pre>"; ?>

Kt qu tr v ko th ni l d c, m phi ni l rt d c g st!

, tuy (c th) bn chng hiu ci

Hy tm hi lng vi nhng g mnh va lm c v th gin mt cht trc khi ta bc vo Bi 4. Bt m trc: Chng ta bit ti hm var_dump in ra kiu v gi tr ca bin, hm print_r (bn on l) in ra cc gi tr ca mt ci $_SERVER g . Vy trong Bi 4, ta s cng tm hiu print_r l g, s dng ra sao, v cn nhng hm no nh vy na.

Bi 4: Cc ton t
thc hin vic tnh ton cc gi tr trong PHP, ta s dng ton t (operator). 1. Gn (assignment) Ton t gn (du =) c s dng ht sc n gin. V d:
PHP Code:

<?php $a = 1; $b = 1; $c = "cool"; ?>

Sau v d, bin $a v $b mang gi tr 1, $c mang gi tr "cool". cho ngn gn, thay v phi mt 2 dng khai bo $a v $b, ta c th gp:
PHP Code:

By TXP Lover, Incomplete, iSheep, Seneken.

18

Learning PHP & MySQL

Updatesofts.com

<?php $a = $b = 1; // Hoc: $b = $a = 1; ?>

Kt qu vn ng nh mong i. 2. Ton t s hc (arithmetic) Cc ton t ny gm c: + (cng - addition), - (tr - subtraction), * (nhn - multiplication), / (chia - division) v % (tnh modul - modulus). V d:
PHP Code:

<?php $a = 10; $b = 5; $c = $a + $b; // $c = 15 $d = $c - $a; // $d = 5 $e = $a / $b; // $e = 2 $f = $e * $b; // $f = 10 $g = $a % $e; // $g = 0 ?>

Ngoi ra, sau khi tnh ton, gi tr $a bng $a nhn 2 chng hn, thay v vit $a = $a * 2; ta c th vit ngn gn: $a *= 2; Tng t, c th vit $a += 10; $a -= 1; $a /= 3; $a %= 1; Cu trc ny rt ging C v C++, nn nu bn bit qua 2 ngn ng ny th ko c g phi b ng. 3. Ton t so snh (comparision) Ton t so snh gm nhng ton t sau: == Mang gi tr TRUE khi 2 v mang cng gi tr === Mang gi tr TRUE khi 2 v mang cng gi tr V cng kiu != Mang gi tr TRUE khi 2 v ko cng gi tr <> Mang gi tr TRUE khi 2 v ko cng gi tr !== Mang gi tr TRUE khi 2 v ko cng gi tr HOC ko cng kiu < Mang gi tr TRUE khi v tri mang gi tr nh hn v phi > Mang gi tr TRUE khi v tri mang gi tr ln hn v phi <= Mang gi tr TRUE khi v tri mang gi tr nh hn hoc bng v phi >= Mang gi tr TRUE khi v tri mang gi tr ln hn hoc bng v phi

By TXP Lover, Incomplete, iSheep, Seneken.

19

Learning PHP & MySQL

Updatesofts.com

Ta s vit l $a == $b, $a !== $b, $a > $b... V d:


PHP Code:

<?php "123" == 123 "123" === 123 ?> // ng // Sai

"123" === "123" // ng

Cn mt loi ton t so snh na, c vit di dng: exp1 ? exp2 : exp3 V d:


PHP Code:

<?php $a = ($b > 1) ? 2 : 1; ?>

C th gii thch nh sau: Nu $b > 1 th $a mang gi tr 2, cn ko $a mang gi tr 1. 4. Ton t logic (logical) Gm c: && Mang gi tr TRUE nu c 2 v u l TRUE || Mang gi tr TRUE nu mt trong 2 v l TRUE ! Mang gi tr TRUE nu v c gi tr FALSE xor Mang gi tr TRUE nu c ng 1 trong 2 v l TRUE Ta vit: $a && $b, $a xor $b... C th dng "and" thay cho && v "or" thay cho || cng ko sao. 5. Ton t bit (bitwise) Ton t x l bit bao gm: & Php And | Php Or ^ Php Xor ~ Php Not << Php Shift Left >> Php Shift Right

By TXP Lover, Incomplete, iSheep, Seneken.

20

Learning PHP & MySQL

Updatesofts.com

C th vit $a >> 2, $b | $c,... 6. Ton t dng trong xu ni 2 xu, ta dng ton t ni xu (concatenation), biu din bng du chm (.) V d $a . $b, "Xu" . "Mt xu khc" Hin nhin c th vit $a .= "Mt xu no " 6. Ton t dng trong mng + Gp 2 mng (union) == So snh bng, mang gi tr TRUE nu cc phn t ca 2 mng mang cng kha & gi tr (c th th t khc nhau) != hoc <> Mang gi tr TRUE nu cc phn t ca 2 mng ko cng kha & gi tr === So snh bng, mang gi tr TRUE nu cc phn t ca 2 mng mang cng kha & gi tr & th t ging nhau !== Mang gi tr TRUE nu 2 mng ko ging ht nhau (non-identical) 7. Cc ton t khc Cc ton t khc c th k n ton t t tng (auto-increment) v t gim (auto-decrement), k hiu tng ng l ++ v --. V d $a++, $b--, --$c, ++$d Mt ton t khc l ton t @, cho php PHP b qua li ca mt ln gi hm. V d: $test = @file('Bn ko c quyn s n file ny');

Tn dng m ngun c sn bng cch include file


Sau khi c xong bi S dng hm trong PHP, bn s c trong tay rt nhiu hm cn thit khi code. S lng hm ny chc chn s tng dn theo thi gian. V d bn ang vit rt nhiu hm v tnh ton vi hnh trn:
PHP Code:

function tinh_dien_tich_hinh_tron($ban_kinh) { // code } function tinh_chu_vi_hinh_tron($ban_kinh) { // code }

By TXP Lover, Incomplete, iSheep, Seneken.

21

Learning PHP & MySQL

Updatesofts.com

// rt nhiu hm khc

Thay v copy v paste cc hm trn vo tt c cc file dnh dng n vic tnh ton vi hnh trn, bn hy cho nhng hm vo 1 file ring, t tn l hinh_tron.php chng hn. Mi ln mun s dng cc hm trong file hinh_tron.php , bn ch vic include n vo file hin ti bng mt trong cc cch sau: 1. Dng include
PHP Code:

include(tn_file);

2. Dng require
PHP Code:

require(tn_file);

File c include c th mang nh dng bt k, php, inc, lib... ty bn chn. Cu hi 1: include vi require lm g? Khi bn include/require 1 file no , ko cn bit file mang nh dng g, PHP s qut ni dung file v bt u x l 2 trng hp: - Vi nhng on nm trong th php, PHP s thc thi nh vi file PHP thng thng - Vi nhng on nm ngoi th php, PHP s output ra mn hnh Cu hi 2: include khc require ch no? Mt file c include nu (chng may) ko tn ti s khin PHP bo li, tuy nhin phn cn li ca script vn s c thc thi. Ngc li, mt file c require nu (xui xo) ko tn ti s khin PHP ng lun, ko chy tip script. Ni cch khc, file c require l file ti quan trng, nh hng ti vic thc thi 1 script. Ngoi vic s dng include v require, bn cn c th dng include_once v require_once. V c bn, include v include_once ging nhau. require v require_once cng th. im khc bit l khi s dng require_once hay include_once, file ch c include ng 1 ln duy nht. Hy xt 1 v d: Bn c 3 script A, B, C. Trong A include B, B include C v C include li A. Nu bn ch dng include() trong c 3 trng hp, chc chn PHP s bo li. trnh trng hp ny, bn ch vic sa 3 ci include() thnh include_once() => Vn c gii quyt!

By TXP Lover, Incomplete, iSheep, Seneken.

22

Learning PHP & MySQL

Updatesofts.com

Cu trc iu khin trong PHP


Cc cu lnh iu kin: cc cu lnh ny cho php chng ta phn bit cc khi m lnh m s c thc thi ch khi gp phi cc iu kin no . PHP cung cp hai cu trc lnh iu kin. u tin l if...elseif...else, cho php chng ta c th kim tra mt s lng cc biu thc v thc thi cc cu lnh theo gi tr ca chng. Nu chng ta mong mun kim tra mt biu thc n l vi mt s lng cc gi tr, PHP cng cung cp mt cu trc switch...case m c th lm n gin ho i php ton ny. 1) Cu lnh If: Cu lnh If l mt trong nhng c tnh quan trng nht ca mi ngn ng lp trnh. N cho php thc thi chn la cc dng m lnh ch khi tho mn cc iu kin c th. Chng hn:
PHP Code:

if ($country=="ca")echo ("Canada");//Canada c in ra khi bin $country l ca

Nu nhiu hn mt cu lnh c thc hin khi tho mn iu kin th s dng du {} ch ra nhng dng lnh no l nm trong khi if:

//Canada s ch c in nu bin $country l ca


PHP Code:

if ($country=="ca"){ echo("Canada"); echo("Ottawa"); }

iu kin c kim tra trong du {} phi tr v gi tr Boolean, hoc l true hoc l false. Cng nh bt k iu kin no m khng c tho mn, zero hay l chui rng (""), cc gi tr khng c nh ngha th tt c u tr v gi tr l false. Cc iu kin c th c ni vi nhau bng cc ton t logic and (&&), or(||) v xor.V d nh sau:

By TXP Lover, Incomplete, iSheep, Seneken.

23

Learning PHP & MySQL

Updatesofts.com

PHP Code:

if (((4 < 5) && (3 > 2)) xor (5 == 5)) echo ("This will not print");

Cc iu kin phn nhnh: Nu iu kin c kim tra m tr v false, th PHP cho php ta ch ra mt khi lnh khc cn c thc hin bng cch dng t kho else. Mi th trong khi m lnh thc thi iu kin ny c xem nh l mt phn nhnh v mi nhnh phi c nh v trong cc du ngoc nu chc nhiu hn mt dng lnh.V d:
PHP Code:

if ($h < 0) { echo ("Negative"); } else { echo ("Positive"); }

PHP cng cung cp t kho elseif kim tra cc iu kin la chn nu iu kin trong cu lnh if l khng ng. Mt s cu lnh elseif c th c s dng vi cu lnh if. Nhnh else cui cng cho php chng ta nh v on m m nn c thc hin nu c iu kin if v elseif u khng ng.
PHP Code:

if ($h < 0) { echo ("Negative"); } elseif ($h == 0) { echo ("Zero"); } else {

By TXP Lover, Incomplete, iSheep, Seneken.

24

Learning PHP & MySQL

Updatesofts.com

echo ("Positive"); }

Ta cng c th kim tra nhng iu kin hon ton khc nhau khi s dng elseif:
PHP Code:

if ($country == "ca") { // do something ... } elseif ($position == "h") { // do something else ... }

Ch : c hai iu kin trn u l true, nhng ch c nhnh lnh th nht l c thc hin. Cng c th s dng cc cu lnh if lng nhau trong cu lnh if khc.V d:
PHP Code:

if ($country == "ca") { if ($position == "h") { echo ("Human resources positions in Canada."); } elseif ($position == "a") { echo ("Accounting positions in Canada."); } }

By TXP Lover, Incomplete, iSheep, Seneken.

25

Learning PHP & MySQL

Updatesofts.com

Cc cu lnh trn cng tng t nh sau:


PHP Code:

if ($country == "ca" && $position == "h") { echo ("Human resources positions in Canada."); } elseif ($country == "ca" && $position == "a") { echo ("Accounting positions in Canada."); }

PHP cng cung cp mt c php la chn cho cu lnh if, l if....endif.V d:


PHP Code:

if ($country == "ca"): echo ("Canada"); elseif ($country == "cr"): echo ("Costa Rica"); else: echo ("the United States"); endif;

2) Cu lnh switch: c s dng khi mt bin ring r ang c kim tra so vi cc gi tr khc. V d:
PHP Code:

switch ($country) {

By TXP Lover, Incomplete, iSheep, Seneken.

26

Learning PHP & MySQL

Updatesofts.com

case "ca": echo ("Canada"); break; case "uk": echo ("the United Kingdom"); break; default: echo ("the United States"); }

Khi cu lnh switch thc hin kim tra gi tr ca bin $country v so snh n vi mi mt trong cc gi tr trong cc mnh case. Khi mt gi tr thch hp c tm thy, cc cu lnh kt hp vi case c thc hin cho n khi gp cu lnh break. Cn nu khng tm ra c gi tr thch hp no th cu lnh default s c thc hin. Ch rng lnh switch trong PHP th linh hot hn nhiu so vi hu ht cc ngn ng khc. Khng ging nh C, Java v ngay c JavaScript, cc gi tr case cng c th l mt trong cc loi v hng, bao gm tt c cc s ,cc chui v ngay c cc bin.V d:
PHP Code:

$val = 6;$a = 5;$b = 6; switch ($val) { case $a: echo ("five"); break; case $b:

By TXP Lover, Incomplete, iSheep, Seneken.

27

Learning PHP & MySQL

Updatesofts.com

echo ("six"); break; default: echo ("$val"); }

Cc mng v cc i tng ch l nhng loi d liu l khng phi l nhng nhn ng ca case trong PHP. Vng lp: Cc vng lp chnh l cc phng tin ca vic thc thi mt khi m lnh trong mt s ln cho trc hay l cho n khi gp phi mt iu kin nht nh. PHP c hai loi vng lp: vng lp while kim tra iu kin trc hay l sau mi bc tnh lp i lp li v thc hin lp li ch khi iu kin l ng. Mt kiu lp khc l for, trong trng hp ny, s lng bc tnh lp i lp li c qui nh trc khi lp ln u v khng th b thay i. 1. Vng lp while: l cu lnh lp n gin nht. C php tng t nh cu lnh if:
PHP Code:

while (condition) { //cc cu lnh }

Mt vng lp while s kim tra mt biu thc Boolean. Nu biu thc l false th on m bn trong du ngoc mc s c b qua. Ngc li, nu c gi tr true th on m bn trong du ngoc mc s c thc hin. Khi gp du } th iu kin kim tra s c thc hin li v nu c gi tr l true th on m trong vng lp s c thc hin li. iu ny s tip tc cho n khi gp phi iu kin . Ch rng iu kin ch c kim tra mi khi bt u vng lp, bi vy ngay khi s chnh xc ca iu kin thay i trong sut on gia ca khi lnh ,th m lnh s vn c thc thi cho n ht. thot khi vo thi im sm hn,ta c th s dng lnh break. V d:
PHP Code:

$i = 11; while (--$i) { By TXP Lover, Incomplete, iSheep, Seneken. 28

Learning PHP & MySQL

Updatesofts.com

if (my_function($i) == "error") { break; // dng vng lp! } ++$num_bikes; }

Trong v d ny, nu ta hnh dung rng hm my_function khng tr v bt k li no th vng lp s lp i lp li 10 ln v dng li khi bin $i =0. Cn nu my_function tr v li, th cu lnh break s c thc hin v vng lp s dng li. C nhiu trng hp m chng ta mong mun kt thc ch khi s lp li hin thi ca vng lp khng phi l ton b vng lp ca chnh n. t c iu ny, ta s dng lnh continue.V d:
PHP Code:

$i = 11; while (--$i) { if (my_function($i) == "error") { continue; } ++$num_bikes; }

on m ny cng lp i lp li 10 ln nu khng c li no c tr v bi hm my_function. Tuy nhin ti lc ny, nu c li xy ra, vic thc hin s lt qua s lp li k tip ca vng lp, m khng tng bin m $num_bikes.Gi s bin $i vn ln hn 0, vng lp s tip tc nh bnh thng.

By TXP Lover, Incomplete, iSheep, Seneken.

29

Learning PHP & MySQL

Updatesofts.com

2. Vng lp do...while: vng lp ny cng ging nh while, ngoi tr iu kin c kim tra ti cui mi vng lp, thay v l u. iu ny c ngha l vng lp s lun lun thc hin t nht mt ln. V d:
PHP Code:

echo ("<SELECT name='num_parts'>\n"); $i = 0; do { echo ("\t<OPTION value=$i>$i</OPTION>\n"); } while (++$i < $total_parts); echo ("</SELECT>\n");

Vi on m trn, gi tr zero lun lun xut hin nh l mt ty chn trong thnh phn <SELECT>, ngay c nu bin $total_parts=0. Cc cu lnh while v do...while thng c dng vi cc ton t tng hay gim iu khin khi no th bt u v dng nh v d trn. Cc bin thng c dng cho mc ch ny i khi c nh ngha nh l cc bin iu khin vng lp.Thng thng s dng cc cu lnh while trong vic c cc records t mt truy vn c s d liu, t cc dng trong mt file hay l t cc nhn t trong mt mng.

3. Vng lp for: Cu trc ca vng lp for l kh phc tp hn mc du cc vng lp for thng tin li hn cc vng lp while:
PHP Code:

for ($i = 1; $i < 11; ++$i) { echo ("$i <BR> \n"); //In t 1 n 10 }

Cu lnh for cha ba biu thc bn trong du ngoc n ca n, phn bit vi nhau bi du chm phy.Biu thc th nht l mt cu lnh gn khi to bin iu khin vng lp. Cu lnh ny c thc thi ch mt ln trc s lp li ln u ca vng lp.Biu thc th hai l

By TXP Lover, Incomplete, iSheep, Seneken.

30

Learning PHP & MySQL

Updatesofts.com

biu thc Boolean m c thc thi ti u mi ln lp. Nu gi tr tr v l true th vng lp s tip tc thc hin. Nu l false th vng lp kt thc. Biu thc th ba l mt cu lnh m thc thi ti giai on cui ca mi ln lp ca vng lp. N thng c dng tng hay gim cc bin iu khin vng lp .

Hm (Functions) trong PHP


Khng th khng ni n hm trong vic lp trnh, nh c n m chng trnh ca chng ta tr nn d dng t chc hn. Nh cc ngn ng khc, PHP c kh nng cung cp nhng hm do ngi dng t nh ngha. ng thi, PHP cng c mt s ci tin vic vit hm c d chu v mnh m hn. nh ngha v gi hm Rt d nh ngha mt hm trong PHP:
PHP Code:

<?php function tn_hm([cc tham s&#7889; truyn vo ...]) { [thn hm ...] } ?>

- T kho function bo cho PHP bit rng y l mt hm. Tip theo l tn hm. Tn hm ca PHP c th l bt c k t Unicode g (k c ting Vit, ting Trung, nhng khng c php bt u bng s). Tht s mnh m, nhng bn s gp vn khi lu file . Thi th c t tn khng du l n nht . V d:
PHP Code:

<?php function this_is_m&#7897;t_hm() { echo "Hon ton hp l !!!"; } ?>

- Sau tn hm l danh sch tham s truyn vo v phn thn hm. Phn thn hm phi bt u v kt thc bng cp du { }. Phn thn ny c thc thi khi tn hm c gi. - Ch : mi tn hm ch c nh ngha mt ln. Vi mt s ngn ng khc, hm c th c gi khi danh sch tham s truyn vo l khc nhau (Java chng hn), nhng PHP th khng c vic .
By TXP Lover, Incomplete, iSheep, Seneken. 31

Learning PHP & MySQL

Updatesofts.com

Gi hm cng kh d. Bn ch vic gi tn hm cng danh sch tham s i km. Hay hn, vic gi hm KHNG PHN BIT CH HOA-CH THNG. Tuy nhin, khuyn co l nn gi hm theo ng tn hm t, nh th d qun l hn.
PHP Code:

<?php generate_left_menu_bar(); GeNeRaTe_LeFt_MEnu_BaR(); // cng c, nhng khng nn dng !!! process_user_information($current_user, "new user", 65.0); generate_copyright_notices(); generate_left_menu_bar; ?> // Sai !! V khng c du ()!!

Ch v d trn, khi gi tn hm, lun phi c cp du ( ) nu hm khng nhn tham s no (cn nu nhn tham s th tt nhin cp du cha tham s ri, phi khng ). Ngng vic thc thi hm - Vo bt c thi im no trong qu trnh thc thi hm, bn cng u c th dng cng vic ca hm bng t kho return.
PHP Code:

<?php function work_work_work() { $dow = date('l'); if ($dow == 'Saturday' or $dow == 'Sunday') { // ngh vic vo cui tun return; } // work hard work_harder(); } ?>

By TXP Lover, Incomplete, iSheep, Seneken.

32

Learning PHP & MySQL

Updatesofts.com

- Khi m hm work_work_work c gi vo th 7 hoc Ch nht, n tr v "khng g c", cn nu khng, n tr v gi tr "lm vic chm ch hn i !!" (V d ch mang tnh minh ha ). a tham s vo hm - V d cho mt cu trc c bn:
PHP Code:

<?php function my_new_function($param1, $param2, $param3, $param4) { echo <<<DONE You passed in: <br/> \$param1: $param1 <br/> \$param2: $param2 <br/> \$param3: $param3 <br/> \$param4: $param4 <br/> DONE; } ?>

- Khi a mt s tham s vo hm, bn phi phn cch chng bng du phy (,). Bn c th truyn bt k tham s no vo hm, bt k l bin, hng s.. hoc thm ch l mt hm khc:
PHP Code:

<?php // gi hm vi nhiu loi tham s truyn vo my_new_function($userName, 6.22e23, pi(), $a or $b); ?>

Gi tr tr v ca hm - Thng thng, ngi ta lp trnh hm ch x l mt cng vic nht nh mang tnh lp li, v gi tr tr v ca hm l khng c (null). Nhng khng hng tt c mi trng hp u nh vy:
PHP Code:

By TXP Lover, Incomplete, iSheep, Seneken.

33

Learning PHP & MySQL

Updatesofts.com

<?php function is_even_number($number) { if (($number % 2) == 0) return TRUE; else return FALSE; } ?>

-> Hm trn c gi tr tr v l mt gi tr boolean True hoc False. Li kt: Hm l mt cng c rt mnh trong PHP. Vic s dng hm khng ch ti u cc on code, n cn lm cho chng trnh d c hn v thch hp lm trong mt nhm vi nhau. Chc bn thnh cng, iSheep

Kiu d liu PHP (tip theo - bon tren)


PHP h tr tm kiu d liu nguyn thu. Bn kiu thng thng l: boolean, integer, floating-point number(float), string. Hai kiu phc tp l: mng( array) v i tng ( object). V cui cng l hai kiu c bit : resource v NULL. Loi d liu ca bin thng thng khng c gn bi ngi lp trnh m c quyt nh ti thi gian chy ca PHP, ph thuc vo ng cnh m bin c dng. 1. Boolean: y l kiu n gin nht. Mt kiu boolean biu th mt gi tr tht. N c th l TRUE hay FALSE. C php: ch nh mt gi tr boolean, c th s dng t kho TRUE hay l FALSE. C hai u khng phn bit ch hoa hay ch thng. V d:
Code:

$foo=True; // gn gi tr TRUE cho bin $foo.

c th chuyn mt gi tr sang kiu boolean, chng ta c th dng (bool) hay (boolean). Tuy nhin trong hu ht cc trng hp bn khng cn phi s dng vic p kiu ny, bi gi tr s c t ng chuyn nu n l mt ton t, hm hay l cu trc iu khin i hi mt tham s kiu boolean.

By TXP Lover, Incomplete, iSheep, Seneken.

34

Learning PHP & MySQL

Updatesofts.com

Ch : -1 c xem l TRUE, ging nh cc gi tr khc 0 khc ( bt k l s dng hay m). 2. Integer: l mt tp hp bao gm cc s {...,-2,-1,0,1,2,...}. C php: Integer c th c ch nh trong c s 10, c s thp lc phn hay c s bt phn, tu chn i trc bi du - hay +. Nu bn s dng vi c s bt phn, bn phi theo th t vi 0 ng trc, cn i vi s thp lc phn th 0x.

V d nh sau:
Code:

$a = 1234; # s thp phn $a = -123; # s m $a = 0123; # s bt phn $a = 0x1A; # s thp lc phn

Kch thc ca kiu d liu ny l 32bit, v PHP khng h tr kiu unsigned integer. Nu bn ch nh mt s vt qua bin ca kiu d liu integer, n s c xem nh kiu float. Tng t nh vy, khi bn thc hin mt php ton m kt qu tr v l mt s vt qua bin ca kiu integer, th kiu float s c tr v. Tuy nhin, c mt li trong PHP m khng phi bao gi iu ny cng ng, n lin quan n cc s m. Chng hn, khi bn thc hin -50000* $million, kt qu s l 429496728. Tuy nhin, khi c hai ton t u l s dng th khng c vn g xy ra. chuyn mt gi tr sang kiu integer, ta c th dng ton t p kiu (int) hay (integer). Tuy nhin, trong hu ht cc trng hp bn khng cn phi dng ton t p kiu , bi gi tr s c t ng chuyn sang nu ton t, hm hay cu trc iu khin i hi mt i s integer. 3. Kiu s thc (floats,doubles,hay real numbers) : c th c ch nh bng cch s dng mt trong cc c php sau:
Code:

$a = 1.234; $a = 1.2e3; $a = 7E-10;

Kch c ca kiu float ty thuc vo platform, gi tr ln nht l xp x 1.8e308

By TXP Lover, Incomplete, iSheep, Seneken.

35

Learning PHP & MySQL

Updatesofts.com

4. String: l nhng chui cc k t.Trong PHP,mt k t cng tng t nh mt byte,do c chnh xc 256 k t khc nhau. C php: c th khai bo bng ba cch khc nhau nh sau: Du nhy n: cch d dng nht ch nh mt chui n gin l ng n trong mt du nhy n.V d:echo 'le bao vy'; Du nhy kp: nu chui c ng trong du nhy kp("),PHP hiu s c thm cc chui cho cc k t c bit ..... V d: \n;\t;\\;\$; Heredoc: cc khc phn nh chui l s dng c php ("<<<"). Ch nn cung cp mt nh danh sau <<<, sau l chui v tip l cng tn nh danh ng du nhy. nh danh dng ng phi bt u bng ct u tin ca dng. nh danh c dng phi c tn ging nh trong cc quy lut t tn bin trong PHP.

5. Mng : l mt danh sch cc phn t c cng kiu d liu.Mng c th l mng mt chiu hay nhiu chiu. Mng mt chiu c ch mc: l mng c qun l bng cch s dng ch s di kiu integer biu th v tr ca gi tr yu cu.C php: $name[index1]; V d: mt mng mt chiu c th c to ra nh sau:
Code:

$meat[0]="chicken"; $meat[1]="steak"; $meat[2]="turkey";

Nu bn thc thi dng lnh sau: print $meat[1]; th trn trnh duyt s hin th dng sau: steak. Bn cng c th s dng hm array( ) ca PHP to ra mt mng.V d:
Code:

$meat=array("chicken","steak","turkey");

Mng mt chiu kt hp: rt thun li khi dng nh x mt mng s dng cc t hn l s dng cc integer, n gip ta gim bt thi gian v cc m yu cu hin th mt gi tr c th.

By TXP Lover, Incomplete, iSheep, Seneken.

36

Learning PHP & MySQL

Updatesofts.com

V d: bn mun ghi li tt c cc thc n v cc cp ru ngon.


Code:

$pairings["zinfandel"] = "Broiled Veal Chops"; $pairings["merlot"] = "Baked Ham"; $pairings["sauvignon"] = "Prime Rib";

Mt cch khc l bn c th s dng hm array( ) ca PHP to ra mt mng loi ny, v d nh sau:


Code:

$pairings = array( zinfandel => "Broiled Veal Chops", merlot => "Baked Ham",sauvignon => "Prime Rib", sauternes => "Roasted Salmon";

Mng nhiu chiu c ch mc: chc nng ca n cng ging nh mng mt chiu c ch mc, ngoi tr vic n c thm mt mng ch mc c dng ch nh mt phn t. C php: $name[index1] [index2]..[indexN]; Mt mng hai chiu c ch mc c to ra nh sau:
Code:

$position = $chess_board[5][4];

Mng a chiu kt hp: kh hu ch trong PHP. Gi s bn mun ghi li cc cp ru-thc n, khng ch loi ru, m c nh sn xut. Bn c th thc hin nh sau:
Code:

$pairings["Martinelli"] ["zinfandel"] = "Broiled Veal Chops"; $pairings["Beringer"] ["merlot"] = "Baked Ham"; $pairings["Jarvis"] ["sauvignon"] = "Prime Rib";

By TXP Lover, Incomplete, iSheep, Seneken.

37

Learning PHP & MySQL

Updatesofts.com

6. Object: bn c th xem object nh l mt bin m minh ho mt kiu mu template c gi l class. Khi nim ca i tng v lp c s dng nhiu trong ngn ng lp trnh hng i tng OOP. Khng ging nh cc kiu d liu khc trong PHP, object phi c khai bo.iu quan trng l phi nhn ra rng object khng hn g mt minh ho ca mt lp, v hot ng nh l mt khun mu cho vic to cc object c cc c tnh v chc nng c th. Cho nn, lp(class) phi c nh ngha trc khi khai bo mt object. khi to mt i tng, bn s dung cu lnh new minh ho i tng vi mt bin.V d:
Code:

<?php class foo{ function do_foo(){ echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); ?>

7. Resource: l mt bin c bit, cha mt tham chiu n mt resource bn ngoi. Cc resource c to ra v s dng bi cc hm c bit. Gii phng resources: bi do tham chiu m ca h thng c gii thiu trong PHP4 Zendengine, n s t ng pht hin khi mt resource khng cn thit cho lu di. Khi trong trng hp ny, tt c cc resource m c dng cho resource ny c gii phng bi "b phn thu nht rc". Do , him khi tht s cn thit gii phng b nh thng thng bng cch s dng hm free_result(). 8. NULL: gi tr NULL c bit dng th hin mt bin khng c gi tr. Mt bin c xem l NULL nu: o N c gn gi tr hng s NULL. o N cha c khi to gi tr no. o N l hm unset( )
By TXP Lover, Incomplete, iSheep, Seneken. 38

Learning PHP & MySQL

Updatesofts.com

Ch thch: unset () l mt hm dng hy b cc bin ch nh. C php: ch c mt loi gi tr ca kiu NULL. Bn c th khai bo nh v d sau:
Code:

$var=NULL;

Lm vic vi mng trong PHP


Cc vn chnh s c cp: - Lm th no to 1 mng trong PHP. - Cch duyt qua tt c cc phn t trong 1 mng. - S lc v mng nhiu chiu M u Mng l mt cch hiu qu nhm mt lng d liu li vi nhau thnh mt khi duy nht. Mng trong PHP cng nh cc ngn ng khc (C/Java/VB), n bao gm 2 phn: kho v gi tr (key v value). Nhng vn c s khc bit, cc kho v gi tr trong PHP c dng mt cch t do, khng theo mt rng buc qu mc no c. Bn hon ton c th dng mt chui lm kho, cng nh nhm cc gi tr khng cng kiu d liu vi nhau li lm thnh mt mng.

S khc bit trong cch s dng mng ca PHP vi cc ngn ng khc To v thm d liu vo mng Mng c to d dng bng t kho array, v c th thm d liu ngay trong phn ni dung ca mng. Nu bn thch dng mt key theo thch ca mnh th c th dng ton t => thm d liu (value) cho key . Hi kh hiu, nhng bn hy xem nhng v d di y bit r hn v cch to mng cng nh cch lu tr gi tr trong mng ca PHP:
PHP Code:

<?php // PHP t ng gn key khi bn to mt mng, bt u t key 0 By TXP Lover, Incomplete, iSheep, Seneken. 39

Learning PHP & MySQL

Updatesofts.com

// trong v d di, key 0 c gi tr l "Piper", // tng t cho key 1, 2 v 3. $airplanes = array("Piper", "Cessna", "Beech", "Cirrus"); // Chng ta cng c th to key theo thch ca chng ta, //khng bt buc phi l s $home = array("size" => 1800, "style" => "ranch", "yearBuilt" => 1955, "numBeds" => 3, "numBaths" =>2, "price" => 150000); ?>

PHP Code:

<?php // key ca mt mng khng bt buc bt u phi l 0. // Chng hn, key 123 c dng lm key bt u trong v d ny. $noises[123] = "hissssssss"; // v khi khai bo nh th ny, key tip theo ca mng s l 124 $noises[] = "gobble gobble"; ?>

Truy xut vo 1 phn t ca mng Bn c th truy xut phn t ca mng bng cch gi key ca n:
PHP Code:

<?php // v d v cch gi key l 1 s $breads = array("baguette", "naan", "roti", "pita"); echo "I like to eat ". $breads[3] . "<br/>\n"; $computer = array("processor" => "Muncheron 6000", "memory" => 2048, "HDD1" => 80000, "graphics" => "NTI Monster GFI q9000"); // v d v cch gi key l 1 chui

By TXP Lover, Incomplete, iSheep, Seneken.

40

Learning PHP & MySQL

Updatesofts.com

echo "My computer has a " . $computer['processor'] . " processor<br/>\n"; ?>

Xo phn t khi mng xo 1 phn t no ca mng, bn dng t kha unset cho phn t :
PHP Code:

<?php $drinks = array("Coffee", "Caf au Lait", "Mocha", "Espresso", "Americano", "Latte"); unset($drinks[3]); ?> // xa phn t "Mocha" khi mng.

Cn mun xo ton b phn t ca mng, bn cng dng t kho unset, nhng cho ton b mng:
PHP Code:

<?php unset($drinks); // mng $drinks gi b xa sch d liu ?>

m s phn t ca mng S dng t kho count:


PHP Code:

<?php $drinks = array("Coffee", "Caf au Lait", "Mocha", "Espresso", "Americano", "Latte"); $elems = count($drinks); // kt qu s l 6. echo "The array \$drinks has $elems elements<br/>\n";

By TXP Lover, Incomplete, iSheep, Seneken.

41

Learning PHP & MySQL

Updatesofts.com

?>

II. Duyt tt c cc phn t ca mng Vng lp foreach


PHP Code:

foreach (array as [key =>] values) kh&#7889;i lnh

Vng lp ny s duyt qua tng phn t mt trong mng, n s dng mt bin cho trc to mt bng copy phn t m n ang duyt ti v x l trn bin . Vng lp kt thc khi khng cn phn t no duyt.
PHP Code:

<?php $drinks = array("Coffee", "Caf au Lait", "Mocha", "Espresso", "Americano", "Latte"); foreach ($drinks as $drink) { echo "We serve $drink<br/>\n"; } ?>

Vng lp thng thng (for) Vng lp for hon ton c th c dng duyt qua tt c cc key ca mng:
PHP Code:

<?php $drinks = array("Coffee", "Caf au Lait", "Mocha", "Espresso", "Americano", "Latte"); for ($x = 0; $x < count($drinks); $x++) {

By TXP Lover, Incomplete, iSheep, Seneken.

42

Learning PHP & MySQL

Updatesofts.com

echo "We serve '$drinks[$x]'<br/>\n"; } ?>

III. Mng nhiu chiu (Multi-Dimensional Arrays) Rt nhiu trng hp bn mun lu tr nhiu mng trong 1 mng c sn. Khi , chng ta c mng mt nhiu chiu. V rt may mn l PHP h tr rt mnh m v d dng trong vic to mng nhiu chiu. Tht vy, y l cch m mng nhiu chiu c to trong PHP
PHP Code:

<?php $bikes = array(); $bikes["Tourmeister"] = array("name" => "Grande Tour Meister", "engine_cc" => 1100, "price" =>12999); $bikes["Slasher1000"] = array("name" => "Slasher XYZ 1000", "engine_cc" => 998, "price" => 11450); $bikes["OffRoadster"] = array("name" => "Off-Roadster", "engine_cc" => 550, "price" => "4295"); ?>

Cn y l cch truy xut vo cc phn t ca mng nhiu chiu:


PHP Code:

<?php $names = array_keys($bikes); foreach ($names as $name) { print $bikes[$name] . " costs: " . $bikes[$name]["price"] . "<br/>\n";

By TXP Lover, Incomplete, iSheep, Seneken.

43

Learning PHP & MySQL

Updatesofts.com

} ?>

IV. Li kt Mng l mt khai bo rt d dng trong PHP. Vic hc v mng tht ra khng c g kh, ch cn c qua cc v d, bn cng hon ton c th rt ra cho mnh c phng thc m PHP to mt mng n gin. Have fun.

Tm kim v thay th trong xu vi Regular Expression


bi trc, chng ta xem xt qua mt s hm thng gp khi x l xu trong PHP. tm kim trong xu, ta c th dng strpos() hoc substr(), nhng vi nhng hm ny ta ch c th tm kim mt cch ht sc hn ch. Hy th tng tng, nu bn mun kim tra xem 1 xu c phi l mt a ch IP, hay mt a ch email ng n hay ko, s phi s dng rt nhiu cu lnh if. Trong nhng trng hp nh th ny, ta s s dng Regular Expression. Regular Expression, vit tt l RegEx, c rt nhiu nh ngha. y l mt trong s cc nh ngha n gin nht: Regular Expression l mt cch thc th hin d liu di dng cc k t i din. N c dng trong cc thut ton tm kim, thay th xu. y l v d v mt RegEx dng kim tra xem mt xu c phi l a ch IP ng n hay ko:
Code:

([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})

Nhn th c v rt phc tp ch thc ra RegEx trn rt n gin v d hiu mt khi bn nm c cch s dng. Ta s quay tr li v d trn sau khi hc c mt s iu cn thit. Gi hy dnh thi gian vo vic tm hiu c php, cch vit 1 RegEx: 1.RegEx C phn bit k t hoa - thng. (case sensitive) V d ta c mt xu nh sau:
Code:

Hello, UDS

Khi RegEx Hello s ph hp vi phn u ca xu ni trn, cn hello th ko.


By TXP Lover, Incomplete, iSheep, Seneken. 44

Learning PHP & MySQL

Updatesofts.com

2. Mi k t trong RegEx u ng vi mt k t trong xu cn kim tra, k c k t trng (du cch, du tab, du xung dng). V d vi xu:
Code:

Hello, UDS

Th Hello, UDS s ph hp cn Hello, UDS ko. 3. Mt s k t c ngha c bit. K t ^ ch s bt u mt xu, cn $ ch s kt thc. V d: Xu


Code:

UDS is UDS

^UDS s ph hp vi on UDS u xu, trong khi UDS$ s ph hp vi on UDS cui xu. 4. Cng nh trong PHP, k t \ c s dng escape mt s k t c bit. V d \$, \^, \Xu:
Code:

$abc$

\$ ph hp vi k t $ u xu. 5. K t . ph hp vi mi k t V d: RegEx ... ph hp vi 3 k t u trong xu


Code:

UDS is a great community!!!

D nhin, 1 k t trong RegEx ph hp vi du . (tht) th cn phi escape du . y nh th ny \. V d:


Code:

By TXP Lover, Incomplete, iSheep, Seneken.

45

Learning PHP & MySQL

Updatesofts.com

O.K.

\. s ph hp vi du . th nht sau k t O. 6. Mt danh sch cc k t c th t trong du ngoc vung []. Khi bt c k t no trong ngoc vung c tm thy, k t s c coi l ph hp. Trt t cc k t trong ngoc l ko quan trng. V d:
Code:

How do you do?

[oyu] s ph hp vi k t o trong t How [dH]. s ph hp vi k t Ho trong t How. 7. Mt di (range) cc k t c th c th hin bng c php [ - ]. C th c nhiu di trong mt cp ngoc []. V d:
Code:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

[C-K] s ph hp vi k t C. [a-d] s ph hp vi k t a. [C-Ka-d2-6] s ph hp vi k t C. 8. Nu mt lp cc k t t trong du [] c m u bng k t ^, nhng k t s c coi l ko ph hp. V d:


Code:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 0123456789

[^CDghi45] s ko ph hp vi cc k t C, D, g, h, i, 4, 5. 9. Cc xu khc nhau c th c t trong du () v phn cch bng k t |. V d:


By TXP Lover, Incomplete, iSheep, Seneken. 46

Learning PHP & MySQL

Updatesofts.com

Code:

Monday Tuesday Friday

(on|ues|rida) s ph hp vi on on trong t Monday, ues trong t Tuesday,... 10. C th ch ra s ln k t s xut hin. K t * ph hp vi "ko hoc nhiu hn th", + ph hp vi "mt hoc nhiu hn th", ? ph hp vi "ko hoc mt". V d:
Code:

aabc abc bc

a*b hoc a+b ph hp vi aab. a?b ph hp vi ab. 11. Du ngoc mc {} c s dng chnh xc ha s lng k t ta mong mun. Trong : {m} cho bit k t xut hin NG m ln {m,n} cho bit k t xut hin T NHT m ln v NHIU NHT n ln. {m,} cho bit k t xut hin T NHT m ln. {,n} cho bit k t xut hin NHIU NHT n ln. V d:
Code:

One ring to bring them all and in the darkness bind them

.{5} s ph hp vi on k t One r. [els]{1,3} s ph hp vi k t e. [a-z]{3,} s ph hp vi on ring. Cn ch : "*", "+", v "?" l trng hp c bit ca lut th 11. "*" tng ng vi {0,}, "+" tng ng vi {1,} cn "?" tng ng vi {0,1}. Vy, trn y t gii thiu mt s lut quan trng v cn nh khi s dng Regular Expression tm kim v thay th trong xu. Bi tip theo s ni ti mt s v d v Regular Expression v vic p dng vo PHP. Cc bn c th tham kho thm v Regular Expression Zvon: RegEx Tutorial: http://www.zvon.org/other/PerlTutori...put/index.html

By TXP Lover, Incomplete, iSheep, Seneken.

47

Learning PHP & MySQL

Updatesofts.com

RegEx Reference: http://www.zvon.org/other/reReference/Output/index.html Chnh bi vit ny cng c dch t RegEx Tutorial.

Tng tc vi server bng form


Vic tng tc vi server bng form c l l mt trong nhng cng vic m cc bn rt hay gp khi lp trnh web. Hy ngh n gin, di gc mt user trong UDS, bn phi tng tc vi bao nhiu l form: form register, form login, form post bi nhanh - post bi advance, form report cho mod... Nhiu qu ha... chng mt Cc form u c im chung: u c vit bng HTML. Hy cng nhc li i cht v cch to form vi HTML: Trc ht, bn hy dnh 30 giy trong qu thi gian "t i" ca mnh ngm li: HTML c cu trc nh th no? Ni mt cch ngn gn, mt file HTML c cu to nh sau:
HTML Code:

<html> <head> <title><!-- Tiu --></title> </head> <body> <!-- Ni dung --> </body> </html>

Form trong HTML c t trong phn <body></body>. V d nh sau:


HTML Code:

<form action="process.php" method="GET"> Tn: <input type="text" name="name" /><br /> Tui: <input type="text" name="age" /><br /> <input type="submit" value="Submit!" /> </form>

on code HTML trn c tc dng g? Rt n gin, n gip to ra 1 form vi 2 nhp d liu: Tn v tui. Km theo l 1 nt lnh mang ch Submit. Rt gin d v ko c g kh hiu
By TXP Lover, Incomplete, iSheep, Seneken. 48

Learning PHP & MySQL

Updatesofts.com

y c. , c 1 iu ny cn gii thch: dng u tin ca on code, th form c 2 thuc tnh: action v method. Hai thuc tnh ny c mc ch g? 1. action="process.php" ngha l sau khi bm submit, d liu s c chuyn qua file process.php nm cng th mc vi file HTML ny 2. method="GET" ngha l phng thc truyn d liu s l GET. Vy, bn bit d liu s c chuyn qua file process.php, m hin nhin file process.php ny cha tn ti, nn mt iu rt t nhin l ta s to file process.php vi ni dung sau:
PHP Code:

<?php $name = $_GET["name"]; $age = $_GET["age"]; echo "Tn bn: $name"; echo "Tui ca bn: $age"; ?>

Hai dng cui ca v d trn c l chng c j` bn. Ch n gin l echo 2 bin $name v $age ra mn hnh. Vn nm trong 2 dng u. Ta ly dng th 1 m x: $name = $_GET["name"]; y ai cng bit gi tr ca $name c gn t $_GET["name"]. Vy l ch cn duy nht 1 iu cn thc mc: $_GET l g? $_GET l mng cha cc gi tr c chuyn t form sang. y $_GET gm 2 phn t: $_GET["name"] v $_GET["age"]. Mi vn n y c gii quyt. Gi ta th xt form V d ban u. Bn hy lm mt php thay i nh: i method="GET" bng method="POST". Khi hin nhin process.php s ko hot ng Nu suy din mt cch educated, bn s ngay lp tc sa sai bng cch thay i $_GET bng $_POST. Kt qu? ng goi n y ta c th sung sng rt ra kt lun: nhn bin t form chuyn sang, c th s dng mng $_GET hoc $_POST, ty vo phng thc truyn d liu ca form. Bi hc kt thc y c ri nh? Cha u bn . Cn mt iu cha ni n: S khc nhau gia $_GET v $_POST l j`? Hay ng hn, s khc nhau gi method GET v POST l g? Ni n GET v POST, trc ht ta s ni n HTTP Request.

By TXP Lover, Incomplete, iSheep, Seneken.

49

Learning PHP & MySQL

Updatesofts.com

Mt HTTP Request c gi ti server c nh dng nh sau:


Code:

<request-line> <headers> <blank line> [<request-body>]

Mt HTTP Request c gi ti trang web www.abc.com t trnh duyt Firefox s tng t nh v d sau:
Code:

GET / HTTP/1.1 Host: www.abc.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6) Gecko/20050225 Firefox/1.0.1 Connection: Keep-Alive

Tng t, mt Request gi n trang www.abc.com/def s c dng nh sau:


Code:

GET /def/ HTTP/1.1 Host: www.abc.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6) Gecko/20050225 Firefox/1.0.1 Connection: Keep-Alive

Nh cc bn c th thy, 2 v d trn u dng phng thc GET request d liu. Gi hy tng tng, sau khi in vo form 1 gi tr name l admin, age l 20, bn bm nt submit gi d liu n file process.php. Trn thanh address s hin ra url: process.php?name=admin&age=20 Nu xem xt mt cch k lng HTTP Request, ta s thy n nh sau:
Code:

GET /process.php?name=admin&age=20 HTTP/1.1 Host: www.abc.com

By TXP Lover, Incomplete, iSheep, Seneken.

50

Learning PHP & MySQL

Updatesofts.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6) Gecko/20050225 Firefox/1.0.1 Connection: Keep-Alive

Tm li, khi dng phng thc GET, trnh duyt s gi Request ti server vi cc tham s t trong dng u tin (request-line). Cn vi phng thc POST th sao? Thay nm trong request-line, nhng tham s ny c t trong phn request-body. V d ta gi nguyn form trn, ch thay method="GET" bng method="POST" v bm Submit. Khi y s l HTTP Request "behind the scene":
Code:

POST / HTTP/1.1 Host: www.abc.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6) Gecko/20050225 Firefox/1.0.1 Content-Type: application/x-www-form-urlencoded Content-Length: 40 Connection: Keep-Alive name=admin&age=20

C th d dng thy rng, ngoi vic thm mt s dng vo phn header:


Code:

Content-Type: application/x-www-form-urlencoded Content-Length: 40 Connection: Keep-Alive

th phng thc POST "ct" cc tham s ca mnh trong phn request-body. iu ny hin nhin khc hn phng thc GET. Bi hc hm nay chnh thc c kt thc y <:-P (v t cng i xem phim smallville tip y )

Xu - Cc php ton thng gp

By TXP Lover, Incomplete, iSheep, Seneken.

51

Learning PHP & MySQL

Updatesofts.com

T xin nhc li mt cch ngn gn: Xu l mt tp hp cc k t. V d "abc", "sadfsks12dsfsdfjkee123" c th coi l mt xu. Trong PHP, xu c th hin bng m k t 8 bit (8-bit character code) v c coi l nm trong bng m ISO-8859-1. Gi ta hy xem xem xt mt s php ton thng gp trn xu: 1. strlen - ly di 1 xu C l cc bn cng d dng on c, strlen l string length - di xu. Cch s dng hm strlen() rt n gin:
PHP Code:

<?php echo strlen("Updatesofts"); ?>

Kt qu in ra s l 11 - s k t trong xu "Updatesofts". 2. trim - ct b phn tha trong xu Hm trim() nhn tham s l 1 xu v n s loi b mi khong trng (whitespace) bt u v kt thc xu. Cn ch y, khong trng ko ch bao gm du cch (" ", mang m ASCII 32) m n cn gm: - Tab ("\t", m ASCII 9) - Du xung dng ("\r" v "\n", m tng ng 10 v 13) - K t NULL ("\0", m 0) - Tab dc (vertical tab - m 11). Du ny gi l "ca him". u V d:
PHP Code:

<?php $str = " \t\t\t\t \nXu ny lm th linh tinh th nh \r\n \t \t "; echo trim($str); ?>

Kt qu output ra hon ton c th on c: "Xu ny lm th linh tinh th nh" 3. ltrim v rtrim Sau khi bit v hm trim(), chc hn bn s t cu hi: Th nh t ch mun ct b my phn linh tinh u/cui xu thi th sao? Tr li: Hon ton c th. Hy dng ltrim() v rtrim() - bn s thik ngay m ltrim dng b cc phn linh tinh bt u xu. rtrim dng b cc phn linh tinh kt thc xu. 4. strpos - tm kim trong xu Hm strpos() nhn 3 tham s:
By TXP Lover, Incomplete, iSheep, Seneken. 52

Learning PHP & MySQL

Updatesofts.com

1. 1 xu 2. xu cn tm trong xu trn 3. bt u tm t k t th my trong xu, mc nh l 0 V d strpos("Updatesofts", "Update") s tr v kt qu l 0. strpos("ABCABC", "A", 2) s tr v kt qu l 3. Vy nu ko tn ti xu cn tm th sao? n gin lm bn , kt qu tr v s l FALSE. Mt iu cn ch na: Nu v tr bt u tm l s m (v d -1), PHP s tm kim t cui xu tr li (ngc vi cch tm mc nh) Gi hy xt 1 v d:
PHP Code:

<? $res = strpos($haystack, $needle); if ($res == FALSE) { echo "Ko thy!"; } else { echo "Thy i!"; } ?>

Bn c $haystack l "Updatesofts", $needle l "Up", hi PHP s echo ra ci g? Bn on l "Thy i" ng ko? Tic l sai ri bn Kt qu l "Ko thy", v $needle c tm thy U $haystack, ngha l v tr th 0, m 0 li ng ngha vi FALSE Kh l confusing phi ko h bn? x l trng hp ny, ta s dng ton t so snh === thay v == (bng bng bng thay v bng bng ). PHP s kim tra c gi tr v kiu ca bin, do 0 v FALSE s l 2 khi nim hon ton khc nhau v vn c gii quyt gn gh. 5. substr - tch (extract) 1 phn trong xu C php ca hm substr() nh sau: substr(xu, v tr bt u, [s k t - nu cn]) V d: substr($str, 1) tr v xu bt u t k t th 1. substr($str, 3, 2) tr v 2 k t ca xu bt u t k t th 3. Cng nh strpos, tham s th 2 c th l m. Khi PHP s x l ngc t cui. Trn y l 5 hm thng gp khi x l xu trong PHP. Hin nhin vic lit k tt c cc hm l impossible, v vy nu bn cn thm v cc hm x l xu trong PHP, hy tm n PHP.net:

By TXP Lover, Incomplete, iSheep, Seneken.

53

Learning PHP & MySQL

Updatesofts.com

http://www.php.net/manual/en/ref.strings.php Coming Up Next: S dng Regular Expression tm kim v thay th trong xu. TO FORM UPLOAD FILE Form upload file cn tho mn cc iu kin sau: * method l POST * enctype l multipart/form-data M HTML ca form s ta ta nh sau: <form method="POST" enctype="multipart/form-data" action="process_upload.php"> <input type="hidden" name="MAX_FILE_SIZE" value="30000"> <input type="file" name="file_upload" size="20"> <input type="submit" value="Upload"> </form> on code trn s to 1 form vi 1 nt Browse... ban chn file cn upload, v 1 nt Upload bn submit form. Form s c submit ti file process_upload.php nm cng th mc vi file cha form. Mt s browser support MAX_FILE_SIZE s kim tra dung lng file trc khi form c submit, tuy nhin khng phi browser no cng vy. Cho nn bn ng nn tin tng tuyt i vo server! v d trn, nu browser h tr, nhng file c dung lng ln hn 30000 byte s c browser thng bo li khi submit form. X L D LIU C SUBMIT LN SERVER By gi ta hy xem xt ti phn x l d liu c submit ln server trong file process_upload.php. PHP lu thng tin v file c upload ln server trong bin global $_FILES. Vi form v d trn, PHP s truyn cho script process_upload.php cc thng tin sau: * $_FILES['file_upload']['name']: tn file gc trn my client. Tu vo browser, tn file c th c truyn ln server dng C:\folder\filename.ext hoc ch l filename.ext. Chng trnh phi t kim tra v trch ra tn file nu cn thit. * $_FILES['file_upload']['type']: kiu ca file, c lu dng MINE (V d: image/gif, audio/wav). * $_FILES['file_upload']['size']: dung lng ca file tnh theo byte. * $_FILES['file_upload']['tmp_name']: sau khi upload, server s lu file vo mt file tm trn server, bin ny cho ta bit ng dn v tn ca file tm . Chng trnh s c file tm ny ly ni dung ca file c upload. * $_FILES['file_upload']['error']: m li, chng trnh nn kim tra bin ny bo m rng qu trnh upload khng xy ra li. o UPLOAD_ERR_OK ( = 0 ): khng c li, qu trnh upload thnh cng. o UPLOAD_ERR_INI_SIZE ( = 1 ): dung lng file upload vt qu gii hn c ch nh trong file php.ini. o UPLOAD_ERR_FORM_SIZE ( = 2 ): dung lng file upload vt qu gii hn c chnh nh bi MAX_FILE_SIZE. o UPLOAD_ERR_PARTIAL ( = 3 ): file ch c upload 1 phn (c th l do li ng truyn trong qu trnh upload). o UPLOAD_ERR_NO_FILE ( = 4 ): khng c file no c upload (c th l file client khng

By TXP Lover, Incomplete, iSheep, Seneken.

54

Learning PHP & MySQL

Updatesofts.com

tn ti). Khi c ton b cc thng tin cn thit, x l file nh th no l quyn nh ca bn. Bn c th c ni dung ca file v lu vo database, hoc di chuyn file v lu vo th mc upload ca bn. Sau y l 1 v d ca file process_upload.php. u tin, kim tra xem tc v c phi l upload hay khng: if ( $_SERVER["REQUEST_METHOD"] != "POST" ) { //thng bo li khng phi l method POST //v thot exit(-1); } //end if

Tip theo kim tra xem qu trnh upload c li g khng: if ( !isset($_FILES["file_upload"]["error"] || $_FILES["file_upload"]["error"] != 0 ) { //thng bo li da vo gi tr ca $_FILES["file_upload"]["error"] //v thot exit(-1); } //end if //ta cng c th kim tra xem dung lng file c vt qu gii hn //ca chng trnh hay khng if ( $_FILES["file_upload"]["size"] > $MAX_FILE_SIZE ) { //thng bo li //v thot exit(-1); } Tch tn file t client: $temp = preg_split('/[\/\\\\]+/', $_FILES["file_upload"]["name"]); $filename = $temp[count($temp)-1]; //ta cng c th kim tra phn m rng ca file nu cn thit if ( !preg_match('/\.(gif|jpg)$/i', $filename ) { //thng bo li file upload khng phi l dng GIF hoc JPG //v thot exit(-1); } //end if V cui cng, lu file c upload vo ni cn thit: $upload_dir = "/home/nbthanh/public_html/uploads/"; $upload_file = $uploaddir . $filename; if ( move_uploaded_file($_FILES["file_upload"]["tmp_name"], $upload_file) ) { //file c upload v copy sang th mc lu tr thnh cng } else { //c li xy ra } //end if

By TXP Lover, Incomplete, iSheep, Seneken.

55

Learning PHP & MySQL

Updatesofts.com

CC HM PHP C DNG TRONG V D * exit: dng/thot chng trnh ngay lp tc. * isset: kim tra xem bin c tn ti hay khng. Trong v d ca bi vit, ta dng hm isset kim tra xem bin $_FILES["file_upload"]["error"] c tn ti hay khng. * preg_split: tch mt chui thnh tng phn nh theo regular expression. Trong v d ca bi vit, ta dng hm ny tch tn file cng ng dn ra thnh tng phn nh (phn cch nhau bng k t \ hoc /, ta khng bit chc c client l Windows hay Linux nn ta tch theo trng hp tng qut). Sau khi tch, phn t cui cng s l tn file. Mt cch khc ly tn file l dng hm basename. Tuy nhin s dng hm ny s c mt s vn ny sinh, bn tham kho thm y: http://www.php.net/manual/en/function.basename.php. * count: m s lng phn t trong mng. $a[count($a)-1] s truy cp ti phn t cui cng ca mng $a. * preg_match: s dng regular expression tm xem chui con c xut hin trong chui m hay khng. Trong v d ca bi vit, ta dng hm ny kim tra xem tn ca ca c c kt thc bng .gif hoc .jpg hay khng. * move_uploaded_file: di chuyn file c upload t client n 1 th mc khc trn server. TI LIU THAM KHO * PHP Manual: http://www.php.net/manual/en/index.php o Regular Expression Functions (Perl-Compatible): http://www.php.net/manual/en/ref.pcre.php o Handling file uploads: http://www.php.net/manual/en/features.file-upload.php * T Google: t kho php tutorial upload file Source from DDTH

By TXP Lover, Incomplete, iSheep, Seneken.

56

You might also like