Tải bản đầy đủ (.pdf) (104 trang)

HTML CĂN BẢN CHO NGƯỜI MỚI BẮT ĐẦU pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (464.71 KB, 104 trang )

C u trúc c a 1 th trong HTML bao g m:ấ ủ ẻ ồ
- D u "<". N u là th đóng thì s b t đ u b ng "</"ấ ế ẻ ẽ ắ ầ ằ
- Tên thẻ
- Các tham s khác n u có. N u là th đóng thì không c n tham s .ố ế ế ẻ ầ ố
- D u ">".ấ
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
ph n thân tài li uầ ệ
</BODY>
</HTML>
Toàn b n i dung chính c a trang HTML đ c đ t trong c p thộ ộ ủ ượ ặ ặ ẻ
<BODY></BODY>
Các th x lý đo n văn b nẻ ử ạ ả Bây gi chúng ta l n l t đi qua các c p th hay s d ng nh t. Xin nóiờ ầ ượ ặ ẻ ử ụ ấ
thêm: th có c u trúc: <tên_th thu c_tính1="gia_tri1" thu c_tính2="gia_tri2">. T t nhiên các b n cóẻ ấ ẻ ộ ộ ấ ạ
th b m t s thu c tính đi (lúc đó, các thu c tính b b đi s đ c đ t ng m đ nh b i trình duy t, r tể ỏ ộ ố ộ ộ ị ỏ ẽ ượ ặ ầ ị ở ệ ấ
khó ch u)ị
1. Các th x lý đo nẻ ử ạ
a). Th phân chia đo nẻ ạ
Trong HTML, các đo n tài li u, văn b n, hình nh… đ c phân chia b ng c p th <P>văn b n</P>ạ ệ ả ả ượ ằ ặ ẻ ả
Th <P> có 1 s thu c tính sau:ẻ ố ộ
Align: Thu c tính này s ch a 1 trong 3 giá tr :ộ ẽ ứ ị
- center: Đo n tài li u s đ c canh ch nh vào gi aạ ệ ẽ ượ ỉ ữ
- left: Đo n tài li u s đ c canh ch nh theo l tráiạ ệ ẽ ượ ỉ ề
- right: Đo n tài li u s đ c canh ch nh theo l ph iạ ệ ẽ ượ ỉ ề ả
- justify: Đo n tài li u s đ c canh ch nh theo hai bênạ ệ ẽ ượ ỉ
Ví d :ụ
HTML>
<BODY>


<p align ="justify"> Th m t tíử ộ </p>
</BODY>
</HTML>
Style: Thu c tính này s quy đ nh kho ng cách l c a đo n. Trong thu c tính này l i có các thu c tínhộ ẽ ị ả ề ủ ạ ộ ạ ộ
con, tuy nhiên các thu c tính con này đ c đ t cách nhau b ng d u ch m ph y. T t nhiên các b nộ ượ ặ ằ ấ ấ ẩ ấ ạ
cũng có th lo i b thu c tính con:ể ạ ỏ ộ
- margin-left : x (x là s nguyên ch đ nh chi u r ng c a l trái)ố ỉ ị ề ộ ủ ề
- margin-right : y (y là s nguyên ch đ nh chi u r ng c a l ph i)ố ỉ ị ề ộ ủ ề ả
- margin-top: z (z là s nguyên ch đ nh chi u r ng c a l trên)ố ỉ ị ề ộ ủ ề
- margin-bottom: t(t là s nguyên ch đ nh chi u r ng c a l d i)ố ỉ ị ề ộ ủ ề ướ
- line-height: u% (u: kho ng cách gi a các dòng tính theo đ n v 100 %)ả ữ ơ ị
Ví d :ụ
HTML Code:
<HTML>
<BODY>
<p align ="center" style ="margin-left: 10; margin-right: 5; margin-
top: 6; margin-bottom: 6"> Th hai tí. Tí th 2 này xác đ nh đo n vănử ứ ị ạ
1
b n căn gi a, có l trái = 10, l ph i b ng 5, l trên = 6, l d iả ữ ề ề ả ằ ề ề ướ
= 6. H t tí th 2.ế ứ </p>
<p align ="left" > Th ba tí. Tí th 3 này xác đ nh đo n văn b n cănử ứ ị ạ ả
trái, các l đ t theo m c đ nh c a trình duy tề ặ ặ ị ủ ệ </p>
<p align ="left" style="line-height: 150%" > Th ba tí. Tí th 3 nàyử ứ
xác đ nh đo n văn b n căn trái, các l đ t theo m c đ nh c a trìnhị ạ ả ề ặ ặ ị ủ
duy tệ </p>
</BODY>
</HTML>
b. Th xu ng dòngẻ ố
Trong HTML, các ký t xu ng dòng không đ c s d ng. Đ ng t m t dòng nào đó, ta dùng thự ố ượ ử ụ ể ắ ộ ẻ
<BR>. Đây là 1 th đ n:ẻ ơ

HTML Code:
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<p align="left" style="margin-left : 30">
Trung thu là t t thi u nhiế ế <BR>T i sao ng i l n l i đi ch i nhi uạ ườ ớ ạ ơ ề
<BR>Ch i nhi u thì s làm li uơ ề ẽ ề <BR>Làm li u l i đ ra nhi u thi uề ạ ẻ ề ế
nhi<BR></p>
</BODY>
</HTML>
Chú ý:
M t c p th khác cũng đ c s d ng đ canh ch nh đo n tài li u hay b ng bi u:ộ ặ ẻ ượ ử ụ ể ỉ ạ ệ ả ể
- <center>…</center>: Xác đ nh canh ch nh m t đo n tài li u ho c b ng bi u vào gi a trang.ị ỉ ộ ạ ệ ặ ả ể ữ
C u trúc c a m t file HTML có d ng:ấ ủ ộ ạ
Các th x lý font ch :ẻ ử ữ
a. Th Meta:ẻ
Th này có nhi u thu c tính khác nhau và cũng làm nhi u nhi m v khác nhau. Tuy nhiên đây tôi chẻ ề ộ ề ệ ụ ở ỉ
nói v cách ng d ng th này đ hi n th các đo n mã ti ng Vi t.ề ứ ụ ẻ ể ể ị ạ ế ệ
Tr c đây các lo i font ch ti ng Vi t r t phong phú, đi u này khi n cho ng i s d ng ti ng Vi tướ ạ ữ ế ệ ấ ề ế ườ ử ụ ế ệ
trên th gi i ph i than tr i m c lên. R t may là t i th i đi m này, h u h t các font ch ti ng Vi tế ớ ả ờ ầ ỹ ả ấ ạ ờ ể ầ ế ữ ế ệ
th i "đ đá" không còn đ c ng d ng trong thi t k web n a, thay vào đó là các chu n qu c tờ ồ ượ ứ ụ ế ế ữ ẩ ố ế
Unicode.
đây tôi xin gi i thi u 2 chu n Unicode ti ng Vi t ph bi n và cách s d ng th meta cho t ngỞ ớ ệ ẩ ế ệ ổ ế ử ụ ẻ ừ
tr ng h p c th :ườ ợ ụ ể
- Mã UTF-8: Là mã font Unicode rút g n (bi u di n font ch theo ki u 8 bit. Khi ta khai báo:ọ ể ễ ữ ể
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Trình duy t s hi u là t khi đ c đ c dòng ch này, nó s gi i mã các ký t theo ki u UTF-8. Và khiệ ẽ ể ừ ọ ượ ữ ẽ ả ự ể
b n g i d li u t m u bi u c a HTML đi, d li u đó cũng ph i đ c mã hoá theo tiêu chu n UTF-8.ạ ử ữ ệ ừ ẫ ể ủ ữ ệ ả ượ ẩ

Ch ng h n, đ trình duy t hi n th đúng bài th :ẳ ạ ể ệ ể ị ơ
Trung thu là t t thi u nhiế ế
T i sao ng i l n l i đi ch i nhi uạ ườ ớ ạ ơ ề
Ch i nhi u thì s làm li uơ ề ẽ ề
Làm li u l i đ ra nhi u thi u nhi.ề ạ ẻ ề ế
2
Thì đo n mã HTML do ta sinh ra ph i có d ng:ạ ả ạ
<HTML>
<BODY>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<p align="left" style="margin-left : 30">
<img src ="bigreen.gif">
Trung thu là tết thiếu nhi<BR>Tại sao ngÆ°á»i lá»›n lại Ä‘i chÆ¡i nhiá»u <BR>ChÆ¡i nhiá»u
thà sẽ là m liá»u<BR>Là m liá»^u lại đẻ ra nhiá»^u thiếu nhi.<BR></p>
</BODY>
</HTML>
T t nhiên chúng ta có th s d ng ch ng trình Vietkey ho c Unikey đ gõ ti ng vi t theo ki u UTF-ấ ể ử ụ ươ ặ ể ế ệ ể
8 (s d ng b ng mã Unicode UTF-8), nh ng s h i khó ch u m t tí .ử ụ ả ư ẽ ơ ị ộ
- Mã UTF-16 bít: Là mã font Unicode 16 bít. Ta ph i khai báo nh sau:ả ư
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
Trình duy t s hi u là t khi đ c đ c dòng ch này, nó s gi i mã các ký t theo ki u UTF-16 bit.ệ ẽ ể ừ ọ ượ ữ ẽ ả ự ể
Và khi b n g i d li u t m u bi u c a HTML đi, d li u đó cũng ph i đ c mã hoá theo tiêu chu nạ ử ữ ệ ừ ẫ ể ủ ữ ệ ả ượ ẩ
UTF- 16 bít trên.
Ch ng h n, đ trình duy t hi n th đúng bài th :ẳ ạ ể ệ ể ị ơ
Trung thu là t t thi u nhiế ế
T i sao ng i l n l i đi ch i nhi uạ ườ ớ ạ ơ ề
Ch i nhi u thì s làm li uơ ề ẽ ề
Làm li u l i đ ra nhi u thi u nhi.ề ạ ẻ ề ế
Thì đo n mã HTML do ta sinh ra ph i có d ng:ạ ả ạ
<HTML>

<BODY>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<p align="left" style="margin-left : 30">
<img src ="bigreen.gif">
Trung thu l#224; t#7871;t thi#7871;u nhi<BR>T#7841;i sao ng#432;#7901;i l#7899;n l#7841;i #273;i
ch#417;i nhi#7873;u.<BR>Ch#417;i nhi#7873;u th#236; s#7869; l#224;m li#7873;u<BR>L#224;m
li#7873;u l#7841;i #273;#7867; ra nhi#7873;u thi#7871;u nhi<BR></p>
</BODY>
</HTML>
T t nhiên chúng ta có th s d ng ch ng trình Vietkey ho c Unikey đ gõ ti ng Vi t theo chu n nàyấ ể ử ụ ươ ặ ể ế ệ ẩ
v i h th ng b ng mã Unicode UCS2ớ ệ ố ả
Chú ý:
1: M t s ch ng trình so n th o có h tr ch đ hi n th mã ti ng Vi t trong quá trình so n th o.ộ ố ươ ạ ả ỗ ợ ế ộ ể ị ế ệ ạ ả
Khi đó n u các b n m ch đ mã HTML mà v n đ c đ c ti ng Vi t nh th ng thì các b n cế ạ ở ế ộ ẫ ọ ượ ế ệ ư ườ ạ ứ
ung dung gõ ti ng Vi t theo ki u Unicode thông th ng là đ c. Còn n u nó hi n th ra các ký tế ệ ể ườ ượ ế ể ị ự
lo ng ngo ng thì các b n ph i đoán mò ra d ng chu n mã hoá font c a nó và s d ng ch đ gõ chằ ằ ạ ả ạ ẩ ủ ử ụ ế ộ ữ
t ng ng.ươ ứ
2: Trong tài li u này tôi s đánh ti ng Vi t thông th ng, các b n s ph i ch u trách nhi m x lý mãệ ẽ ế ệ ườ ạ ẽ ả ị ệ ử
ti ng Vi t trong các đo n ví d .ế ệ ạ ụ
b) C p th <font>…</font>ặ ẻ
C p th này quy đ nh tên font, màu s c, kích c font. Nó có nh ng thu c tính sau:ặ ẻ ị ắ ỡ ữ ộ
Face: Tên c a font, ch ng h n: Arial, .VnTime, Times New Romanủ ẳ ạ
Size: Kích c c a font, bé nh t là 1.ỡ ủ ấ
Color: Màu s c cùa font, bao g m d u # và 6 ch s hex ti p theo quy đ nh mã màu RGBắ ồ ấ ữ ố ế ị
Ví d :ụ
<HTML>
<BODY>
<p align ="center"><font face="Arial" size="5" color="#800000">T t trung thu</font></p>ế
3
<p align="left" style="margin-left : 30"><font size ="2" name ="Verdana">

Trung thu là t t thi u nhi<BR>T i sao ng i l n l i đi ch i nhi u <BR>Ch i nhi u thì s làmế ế ạ ườ ớ ạ ơ ề ơ ề ẽ
li u<BR>Làm li u l i đ ra nhi u thi u nhi<BR></font></p>ề ề ạ ẻ ề ế
</body></html>
c. Các th đ nh d ng ch nghiêng, đ m, g ch chân:ẻ ị ạ ữ ậ ạ
- Đ nh dang ch đ m:ị ữ ậ
C p th <B>…</B> xác đ nh đo n văn b n gi a s b in đ m. C p th này không có tham s kèmặ ẻ ị ạ ả ở ữ ẽ ị ậ ặ ẻ ố
theo.
- Đ nh dang ch nghiêng:ị ữ
C p th <i>…</i> xác đ nh đo n văn b n gi a s b in nghiêng. C p th này không có tham s kèmặ ẻ ị ạ ả ở ữ ẽ ị ặ ẻ ố
theo.
- Đ nh dang ch g ch chân:ị ữ ạ
C p th <u>…</u> xác đ nh đo n văn b n gi a s b g ch chân. C p th này không có tham sặ ẻ ị ạ ả ở ữ ẽ ị ạ ặ ẻ ố
kèm theo.
Ví d :ụ
<HTML>
<BODY>
<p align ="center"><font face="Arial" size="5" color="#800000"><B><I>T t trungế
thu</font></I></B></p>
<p align="left" style="margin-left : 30"><font size ="2" name ="Verdana">
Trung thu là t t thi u nhi<BR>T i sao ng i l n l i đi ch i nhi u <BR>Ch i nhi u thì s làmế ế ạ ườ ớ ạ ơ ề ơ ề ẽ
li u<BR>Làm li u l i đ ra nhi u thi u nhi<BR></font></p>ề ề ạ ẻ ề ế
</body></html>
Các th x lý đo nẻ ử ạ
a). Th phân chia đo nẻ ạ
Trong HTML, các đo n tài li u, văn b n, hình nh… đ c phân chia b ng c p th <P>văn b n</P>ạ ệ ả ả ượ ằ ặ ẻ ả
Th <P> có 1 s thu c tính sau:ẻ ố ộ
Align: Thu c tính này s ch a 1 trong 3 giá tr :ộ ẽ ứ ị
- center: Đo n tài li u s đ c canh ch nh vào gi aạ ệ ẽ ượ ỉ ữ
- left: Đo n tài li u s đ c canh ch nh theo l tráiạ ệ ẽ ượ ỉ ề
- right: Đo n tài li u s đ c canh ch nh theo l ph iạ ệ ẽ ượ ỉ ề ả

- justify: Đo n tài li u s đ c canh ch nh theo hai bênạ ệ ẽ ượ ỉ
Ví d :ụ
<HTML>
<BODY>
<p align ="justify"> Th m t tí</p>ử ộ
</BODY>
</HTML>
Style: Thu c tính này s quy đ nh kho ng cách l c a đo n. Trong thu c tính này l i có các thu c tínhộ ẽ ị ả ề ủ ạ ộ ạ ộ
con, tuy nhiên các thu c tính con này đ c đ t cách nhau b ng d u ch m ph y. T t nhiên các b nộ ượ ặ ằ ấ ấ ẩ ấ ạ
cũng có th lo i b thu c tính con:ể ạ ỏ ộ
- margin-left : x (x là s nguyên ch đ nh chi u r ng c a l trái)ố ỉ ị ề ộ ủ ề
- margin-right : y (y là s nguyên ch đ nh chi u r ng c a l ph i)ố ỉ ị ề ộ ủ ề ả
- margin-top: z (z là s nguyên ch đ nh chi u r ng c a l trên)ố ỉ ị ề ộ ủ ề
- margin-bottom: t(t là s nguyên ch đ nh chi u r ng c a l d i)ố ỉ ị ề ộ ủ ề ướ
- line-height: u% (u: kho ng cách gi a các dòng tính theo đ n v 100 %)ả ữ ơ ị
Ví d :ụ
<HTML>
<BODY>
<p align ="center" style ="margin-left: 10; margin-right: 5; margin-top: 6; margin-bottom: 6"> Th hai tí.ử
Tí th 2 này xác đ nh đo n văn b n căn gi a, có l trái = 10, l ph i b ng 5, l trên = 6, l d i = 6.ứ ị ạ ả ữ ề ề ả ằ ề ề ướ
H t tí th 2.</p>ế ứ
<p align ="left" > Th ba tí. Tí th 3 này xác đ nh đo n văn b n căn trái, các l đ t theo m c đ nh c aử ứ ị ạ ả ề ặ ặ ị ủ
trình duy t</p>ệ
4
<p align ="left" style="line-height: 150%" > Th ba tí. Tí th 3 này xác đ nh đo n văn b n căn trái, cácử ứ ị ạ ả
l đ t theo m c đ nh c a trình duy t</p>ề ặ ặ ị ủ ệ
</BODY>
</HTML>
. Th xu ng dòngẻ ố
Trong HTML, các ký t xu ng dòng không đ c s d ng. Đ ng t m t dòng nào đó, ta dùng thự ố ượ ử ụ ể ắ ộ ẻ

<BR>. Đây là 1 th đ n:ẻ ơ
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<p align="left" style="margin-left : 30">
Trung thu là t t thi u nhi<BR>T i sao ng i l n l i đi ch i nhi u <BR>Ch i nhi u thì s làmế ế ạ ườ ớ ạ ơ ề ơ ề ẽ
li u<BR>Làm li u l i đ ra nhi u thi u nhi<BR></p>ề ề ạ ẻ ề ế
</BODY>
</HTML>
Chú ý:
M t c p th khác cũng đ c s d ng đ canh ch nh đo n tài li u hay b ng bi u:ộ ặ ẻ ượ ử ụ ể ỉ ạ ệ ả ể
- <center>…</center>: Xác đ nh canh ch nh m t đo n tài li u ho c b ng bi u vào gi a trang.ị ỉ ộ ạ ệ ặ ả ể ữ
Các th liên k t:ẻ ế
a. Th liên k t v i hình nh:ẻ ế ớ ả
Trong HTML, chúng ta không th chèn tr c ti p toàn b ru t gan c a m t file hình nh, mà ta ph i chể ự ế ộ ộ ủ ộ ả ả ỉ
d n đ n hình nh đ t bên ngoài. Đ làm đi u này, ta dùng th <img>. Đây là 1 th đ n.ẫ ế ả ặ ể ề ẻ ẻ ơ
Th này có m t s thu c tính sau:ẻ ộ ố ộ
- Src: Xác đ nh đ a ch URL c a hình nh:ị ị ỉ ủ ả
- align: Xác đ nh ki u canh l :ị ể ề
- right: Canh theo l ph iề ả
- left:Canh theo l tráiề
- center:Canh theo l gi a.ề ữ
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<p align="left" style="margin-left : 30">

<img src ="bigreen.gif" align = "right">
Trung thu là t t thi u nhi<BR>T i sao ng i l n l i đi ch i nhi u <BR>Ch i nhi u thì s làmế ế ạ ườ ớ ạ ơ ề ơ ề ẽ
li u<BR>Làm li u l i đ ra nhi u thi u nhi<BR></p>ề ề ạ ẻ ề ế
</BODY>
</HTML>
- border: Xác đ nh chi u dày c a vi n bao quanh nh.ị ề ủ ề ả
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<p align="left" style="margin-left : 30">
<img src ="bigreen.gif" border ="5">
Trung thu là t t thi u nhi<BR>T i sao ng i l n l i đi ch i nhi u <BR>Ch i nhi u thì s làmế ế ạ ườ ớ ạ ơ ề ơ ề ẽ
li u<BR>Làm li u l i đ ra nhi u thi u nhi<BR></p>ề ề ạ ẻ ề ế
</BODY>
</HTML>
b. Th liên k t trang web.ẻ ế
5
Đ t o m t liên k t t i m t trang web khác, ta dùng c p th <a></a>. C p th này có các thu c tínhể ạ ộ ế ớ ộ ặ ẻ ặ ẻ ộ
sau:
Href: Đ a ch URL c a trang web c n liên k t t i. b n đã có m t bookmark trên trang web, b n có thị ỉ ủ ầ ế ớ ạ ộ ạ ể
tr đ n v trí c a bookmark b ng cách dùng thu c tính href v i d u # và tên bookmark.ỏ ế ị ủ ằ ộ ớ ấ
name: Xác đ nh tên c a bookmark (đi m liên k t trong n i t i trang web).ị ủ ể ế ộ ạ
Ví d , ta có 2 trang web:ụ
Trang th nh t có đ a ch là "tettrungthu.htm", có n i dung sau:ứ ấ ị ỉ ộ
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>

<BODY>
<p align="left" style="margin-left : 30">
<img src ="bigreen.gif" border ="5">
Trung thu là t t thi u nhi<BR>T i sao ng i l n l i đi ch i nhi u <BR>Ch i nhi u thì s làmế ế ạ ườ ớ ạ ơ ề ơ ề ẽ
li u<BR>Làm li u l i đ ra nhi u thi u nhi<BR></p>ề ề ạ ẻ ề ế
</BODY>
</HTML>
Trang th 2 có tên là danhsachthovui.htm, có n i dung sau:ứ ộ
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<p align="left" style="margin-left : 30">
Tet trung thu
</p>
</BODY>
</HTML>
Gi s ta mu n thêm m t liên k t v i file "tettrungthu.htm" vào ch Tet trung thu trong fileả ử ố ộ ế ớ ữ
danhsachthovui.htm, ta ph i chèn c p th <a> </a> nh sau:ả ặ ẻ ư
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<p align="left" style="margin-left : 30">
<a href ="tettrungthu.htm">Tet trung thu</a>
</p>
</BODY>
</HTML>

Chú ý: c 2 file này ph i đ c đ t cùng th m c. Trong tr ng h p đ t khác th m c các b n ph iả ả ượ ặ ư ụ ườ ợ ặ ư ụ ạ ả
ghi rõ đ ng d n đ n file kia.ườ ẫ ế
Các c p th x lý b ng:ặ ẻ ử ả
Các b ng trong HTML đ c đ nh nghĩa nh sau:ả ượ ị ư
Đ nh nghĩa 1 b ng b i c p th <table></table>ị ả ở ặ ẻ
Trong 1 b ng (table) đ c chia làm nhi u dòng , m i dòng gi i h n b i 1 c p th <tr></tr>.ả ượ ề ỗ ớ ạ ở ặ ẻ
Trong m i dòng l i có các ô , gi i h n b i c p th <td></td>ỗ ạ ớ ạ ở ặ ẻ
Ch ng h n đ đ nh nghĩa 1 b ng g m có 1 dòng và 3 ô, ta làm nh sau:ẳ ạ ể ị ả ồ ư
<table>
<tr>
<td>Ô th nh t</td>ứ ấ
<td>Ô th 2</td>ứ
<td>Ô th 3</td>ứ
</tr>
6
</table>
Ho c đ đ nh nghĩa m t b ng g m 2 dòng, m i dòng 3 ô:ặ ể ị ộ ả ồ ỗ
<table>
<tr>
<td>Ô th nh t dòng 1</td>ứ ấ
<td>Ô th 2 dòng 1</td>ứ
<td>Ô th 3 dòng 1</td>ứ
</tr>
<tr>
<td>Ô th nh t dòng 2</td>ứ ấ
<td>Ô th 2 dòng 2</td>ứ
<td>Ô th 3 dòng 2</td>ứ
</tr>
</table>
Chú ý: S l ng các ô trong các dòng ph i b ng nhau, n u 1 dòng nào đó có s ô khác v i dòng khác,ố ượ ả ằ ế ố ớ

b ng s b "v k ho ch". Đ kh c ph c đi u này, ta ph i tính tr c trong 1 b ng, s l ng t i đaả ẽ ị ỡ ế ạ ể ắ ụ ề ả ướ ả ố ượ ố
các ô c a 1 dòng s là bao nhiêu, sau đó có th dùng thu c tính colspan c a th <td> đ g p các ôủ ẽ ể ộ ủ ẻ ể ộ
tr ng trong cùng 1 hàng l i v i nhau.ố ạ ớ
Thu c tính colspan s ch đ nh s l ng các ô đ c g p vào nhau trên m t hàng.ộ ẽ ỉ ị ố ượ ượ ộ ộ
Ch ng h n:ẳ ạ
<table>
<tr>
<td colspan = "2" >Ch p ô th nh t và ô th 2 c a dòng 1</td>ậ ứ ấ ứ ủ
<td>Ô th 3 dòng 1</td>ứ
</tr>
<tr>
<td>Ô th nh t dòng 2</td>ứ ấ
<td>Ô th 2 dòng 2</td>ứ
<td>Ô th 3 dòng 2</td>ứ
</tr>
</table>
M t s thu c tính có liên quan:ộ ố ộ
Th Table:ẻ
- border: Xác đ nh đ dày c a khung bao quanh b ngị ộ ủ ả
- bordercolor: Màu c a khung bao quanh, vi t d i d ng d u # và 6 ch s HEX ti p theo.ủ ế ướ ạ ấ ữ ố ế
- cellspacing: Xác đ nh kho ng cách gi a các ô trong b ng.ị ả ữ ả
- width: Xác đ nh đ r ng c a b ngị ộ ộ ủ ả
- background: Xác đ nh hình nh s đ c s d ng đ làm n n cho toàn b ngị ả ẽ ượ ử ụ ể ề ả
- bgcolor: Xác đ nh màu n n c a b ng, vi t theo ki u #XXXXXX (s HEX).ị ề ủ ả ế ể ố
Th <td>ẻ
- width: Đ r ng c a ôộ ộ ủ
- height: Chi u cao c a ôề ủ
- colspan: Xác đ nh bao nhiêu ô tính t ô đó s đ c ch p vào làm 1 (trên cùng 1 dòng)ị ừ ẽ ượ ậ
- rowspan: Xác đ nh bao nhiêu ô tính t ô đó s đ c ch p vào làm 1 (trên cùng 1 c t).ị ừ ẽ ượ ậ ộ
- background: Xác đ nh hình nh s đ c s d ng đ làm n n cho ôị ả ẽ ượ ử ụ ể ề

- bgcolor: Xác đ nh màu n n ô, vi t theo ki u #XXXXXX (s HEX).ị ề ế ể ố
Bài 7: Các câu l nh gán và r nhánhệ ẽ :
Các câu l nh trong ngôn ng l p trìnhệ ữ ậ
Đ l p trình gi i m t bài toán nào đó, chúng ta ph i s d ng các câu l nh sau:ể ậ ả ộ ả ử ụ ệ
1. L nh gán: đ c s d ng đ đ t m t giá tr vào m t bi n nào đó.ệ ượ ử ụ ể ặ ộ ị ộ ế
2. L nh r nhánh: Đ c s d ng đ xác đ nh xem ch ng trình s th c hi n công vi c gì trong đi uệ ẽ ượ ử ụ ể ị ươ ẽ ự ệ ệ ề
ki n ra saoệ
3. L nh l p: Cho phép ch ng trình c a b n t đ ng l p l i các thao tác nào đóệ ặ ươ ủ ạ ự ộ ặ ạ
Quá trình xây d ng các b c đ th c hi n m t bài toán nào đó, g i là quá trình xây d ng thu t gi i.ự ướ ể ự ệ ộ ọ ự ậ ả
1. L nh gánệ
7
L nh này đã đ c h c bài tr c:ệ ượ ọ ở ướ
Cú pháp:
$ten_bien = gia_tri;
Ví d :ụ
$ngay_sinh="1/4/1980";
$que_quan="Thanh Hoa";
$luong=300000;
2. Các câu l nh r nhánhệ ẽ
Trong PHP có 2 d ng r nhánh: r hai nhánh (if) và r nhi u nhánh.ạ ẽ ẽ ẽ ề
L nh r nhánh là m t trong nh ng câu l nh quan tr ng nh t c a t t c các ngôn ng l p trình. Nó choệ ẽ ộ ữ ệ ọ ấ ủ ấ ả ữ ậ
phép b n th c thi m t đo n mã khi mà đi u ki n ch đ nh là đúng.ạ ự ộ ạ ề ệ ỉ ị
Trong PHP, l nh r nhánh có d ng sau:ệ ẽ ạ
if (đi u ki n)ề ệ
{
công vi c c n làmệ ầ
}
Ví d :ụ
if ($name="Sinh")
{

echo ("Good morning, my boss");
}
N u kh i câu l nh c n làm ch bao g m duy nh t m t dòng l nh, ta có th b c p d u {} :ế ố ệ ầ ỉ ồ ấ ộ ệ ể ỏ ặ ấ
if ($name="Sinh")
echo ("Good morning, my boss");
Nh ng n u nhi u h n m t dòng l nh, ta ph i đ a chúng vào c p d u ngo c {}:ư ế ề ơ ộ ệ ả ư ặ ấ ặ
if ($name=="Sinh")
{
echo ("Good morning, my boss");
echo ("Have a romantic day!");
}
Đo n l nh trên s ki m tra n u đi u ki n bi n $name = "Sinh" thì nó s hi n th l i chào. Còn n uạ ệ ẽ ể ế ề ệ ế ẽ ể ị ờ ế
không thì nó không làm gì c !ả
Đi u ki n đ t vào có th là đúng, có th là sai, có th là t ng h p c a nhi u đi u ki n. Hãy xem ví dề ệ ặ ể ể ể ổ ợ ủ ề ề ệ ụ
sau:
if ("false" )
echo ("Khong co gi ca");
if (($name=="sinh") && ($pass=="test"))
echo ($name. "đã nh p đúng password");ậ
Đo n l nh trên có th vi t t ng đ ng v i:ạ ệ ể ế ươ ươ ớ
if ($name=="sinh")
{
if ($pass=="test")
echo ($name. "đã nh p đúng password");ậ
}
Nh b n th y trên, trong m t câu l nh, chúng ta có th chèn nhi u đo n l nh khác, ng i ta g i đóư ạ ấ ở ộ ệ ể ề ạ ệ ườ ọ
là c u trúc kh i, t c là trong m t kh i l nh, có th có ch a nhi u kh i l nh con khác. N u b n ph iấ ố ứ ộ ố ệ ể ứ ề ố ệ ế ạ ả
đ c mã ngu n c a ng i khác, hi v ng b n không b hoa m t vì hàng ch c kh i l nh chen chúc vàoọ ồ ủ ườ ọ ạ ị ắ ụ ố ệ
nhau nh v y.ư ậ
Chúng ta có th s d ng các toán t &&, || hay xor đ k t n i các đi u ki n v i nhau nh b n th y ể ử ụ ử ể ế ố ề ệ ớ ư ạ ấ ở

trên
Câu l nh r nhánh đ y đ :ệ ẽ ầ ủ
N u đi u ki n ki m tra tr v false (sai), PHP cho phép chúng ta ch đ nh th c thi m t kh i mã l nhế ề ệ ể ả ề ỉ ị ự ộ ố ệ
khác b ng t khoá elseằ ừ
Ví d :ụ
8
if (($name=="sinh") && ($pass=="test"))
{
echo ("Good day, ".$name);
}
else
{
echo {"Sai mat khau!")
}
Chú ý đ n m t ngo i l sau: Tr c t khoá else không bao gi có d u ch m ph y (.ế ộ ạ ệ ướ ừ ờ ấ ấ ẩ
L nh r nhi u nhánh:ệ ẽ ề
V i câu l nh if, PHP cho phép chúng ta r nhi u nhánh thông qua t khoá elseif:ớ ệ ẽ ề ừ
if (dieu_kien1)
{
doan_lenh_1;
}
elseif (dieu_kien_2)
{
doan_lenh_2
}
elseif (dieu_kien_3)
} // bao nhiêu t khoá elseif cũng đ cừ ượ
else
{
doan_lenh_n

}
Ví d :ụ
if ($thu==2)
{
echo ("Chao co, van, su, ly");
}
elseif ($thu==3)
{
echo (" Hoa, Sinh, Dia, GDCD");
}
elseif ($thu==4)
{
echo ("KTCN, Van, Toan, Tieng Anh");
}
elseif ($thu==5)
{
echo (" Hoa, Toan, Van, Tin");
}
elseif ($thu==6)
{
echo ("Toan, Van, Anh, Sinh hoat");
}
else
{
echo ("Duoc di choi");
}
Trong ví d trên, chúng ta đã l p đi l p l i thao tác ki m tra giá tr c a bi n $thu, m c dù nó khôngụ ặ ặ ạ ể ị ủ ế ặ
thay đ i qua các dòng. Đ kh c ph c s dài dòng này, PHP cho phép ta s d ng câu l nh switch. Câuổ ể ắ ụ ự ử ụ ệ
l nh này s đ c s d ng đ ki m tra khi mu n xem xét qua nhi u giá tr c a m t bi n:ệ ẽ ượ ử ụ ể ể ố ề ị ủ ộ ế
9

switch ($bien){
Case gia_tri 1:
doan_lenh_1;
break;
Case gia_tri 2:
doan_lenh_2;
break;
Case gia_tri n:
doan_lenh_n;
break;
default:
doan_lenh_khac;
}
Ví d :ụ
switch ($thu){
case 2:
echo ("Chao co, van, su, ly");
break;
case 3:
echo (" Hoa, Sinh, Dia, GDCD");
break;
case 4:
echo ("KTCN, Van, Toan, Tieng Anh");
break;
case 5:
echo (" Hoa, Toan, Van, Tin");
break;
case 6:
echo ("Toan, Van, Anh, Sinh hoat");
break;

default:
echo ("Duoc di choi");
}
Câu l nh switch s c l ng giá tr c a bi n $thu, và so sánh nó v i giá tr c a m nh đ case. Khiệ ẽ ướ ượ ị ủ ế ớ ị ủ ệ ề
m t giá tr h p l đ c tìm th y, nó s th c hi n câu l nh t ng ng v i giá tr đó. Còn n u không,ộ ị ợ ệ ượ ấ ẽ ự ệ ệ ươ ứ ớ ị ế
nó s t đ ng th c hi n câu l nh trong m nh đ default. Hãy chú ý r ng m nh đ defaul là tuỳ ch nẽ ự ộ ự ệ ệ ệ ề ằ ệ ề ọ
(b n có th có nó ho c không c n nó)ạ ể ặ ầ
Chú ý: Sau m i m nh đ trong câu l nh switch, c n ph i s d ng câu l nh break. N u không thìỗ ệ ề ệ ầ ả ử ụ ệ ế
ch ng trình s th c thi t t t n t t các đo n mã l nh n m trong câu l nh switch. ươ ẽ ự ấ ầ ậ ạ ệ ằ ệ
Bài 8: Các câu l nh l pệ ặ
L nh đi u khi n vòng l pệ ề ể ặ
Đi u khi n vòng l p, t c là b n đi u khi n ch ng trình c a b n t đ ng th c hi n m t đo n mãề ể ặ ứ ạ ề ể ươ ủ ạ ự ộ ự ệ ộ ạ
l nh nào đó l p đi l p l i nhi u l n (l p m t s l ng l n nào đó, ho c l p cho đ n khi tho mãnệ ặ ặ ạ ề ầ ặ ộ ố ượ ầ ặ ặ ế ả
m t đi u ki n nào đó).ộ ề ệ
PHP cung c p cho chúng ta hai ki u vòng l p: vòng l p while (l p ki m tra đi u ki n, cho đ n khiấ ể ặ ặ ặ ể ề ệ ế
đi u ki n đ c tho mãn) và vòng l p for (xác đ nh s l n l p l i)ề ệ ượ ả ặ ị ố ầ ặ ạ
a) Vòng l p whileặ
Vòng l p while là m t d ng vòng l p đ n gi n nh t, c u trúc c a nó g n gi ng nh l nh if:ặ ộ ạ ặ ơ ả ấ ấ ủ ầ ố ư ệ
while (đi u ki n)ề ệ
{
//Khoi cau lenh can lap
}
Vòng l p while s c l ng m t bi u th c giá tr ki u boolean (đúng ho c sai).N u giá tr c a bi uặ ẽ ướ ượ ộ ể ứ ị ể ặ ế ị ủ ể
th c là false, đo n mã trong c p d u ngo c (đo n mã c n l p) s đ c b qua và nh y đ n đo n mãứ ạ ặ ấ ặ ạ ầ ặ ẽ ượ ỏ ả ế ạ
sau vòng l p. N u giá tr c a nó là true, đo n mã trong c p d u ngo c s đ c th c thi. Khi b t g pặ ế ị ủ ạ ặ ấ ặ ẽ ượ ự ắ ặ
10
d u ngo c ôm ("}") , đi u ki n ki m tra s đ c tính toán l i, và n u giá tr v n là true, đo n mãấ ặ ề ệ ể ẽ ượ ạ ế ị ẫ ạ
trong ngo c l i ti p t c đ c th c thi. Chú ý r ng đi u ki n l p ch đ c tính toán t i th i đi m b tặ ạ ế ụ ượ ự ằ ề ệ ặ ỉ ượ ạ ờ ể ắ
đ u l p. Vì v y, dù đi u ki n l p có b thay đ i trong quá trình th c thi đo n l nh trong c p d u {}ầ ặ ậ ề ệ ặ ị ổ ự ạ ệ ặ ấ
thì đo n l nh đó v n đ c ti p t c th c hi n cho đ n h t. Mu n d ng l i m t v trí xác đ nh nào đóạ ệ ẫ ượ ế ụ ự ệ ế ế ố ừ ạ ở ộ ị ị

trong kh i câu l nh, chúng ta s d ng l nh break:ố ệ ử ụ ệ
Ví d 1: Tính t ng t 1 đ n 5:ụ ổ ừ ế
<?php
$i=0;
$tong=0;
while ($i<=5)
{
$tong=$tong+$i;
$i+=1;
}
?>
Ví d 2: Đo n mã sau s hi n th trên trình duy t 3 ô textbox (V i đi u ki n b n ph i save nó d iụ ạ ẽ ể ị ệ ớ ề ệ ạ ả ướ
m t file *.php :ộ
<HTML>
<TABLE>
<BODY>
<?php
$i=1;
while ($i<=3)
{
?>
<TR><TD> <INPUT type="text"> </TD></TR>
<?php
$i+=1;
}
?>
</table>
</body>
</html>
b. Vòng l p do whileặ

Vòng l p này gi ng nh vòng l p while, nh ng thay vì ki m tra đi u ki n vào lúc đ u c a đo n l nhặ ố ư ặ ư ể ề ệ ầ ủ ạ ệ
c n l p, thì nó l i ki m tra giá tr đi u ki n vào cu i vòng l p. Đi u này có nghĩa là nó luôn luôn th cầ ặ ạ ể ị ề ệ ố ặ ề ự
hi n đo n l nh c n l p ít nh t m t l n.ệ ạ ệ ầ ặ ấ ộ ầ
C u trúc c a nó nh sau:ấ ủ ư
do
{ Đo n (kh i) câu l nh c n l pạ ố ệ ầ ặ
} while (đi u ki n);ề ệ
Ví d :ụ
<HTML>
<TABLE>
<BODY>
<?php
$i=1;
do
{
?>
<TR><TD> <INPUT type="text"> </TD></TR>
<?php
$i+=1;
}while ($i<=3);
11
?>
</table>
</body>
</html>
Đ xác đ nh l i s khác nhau c a 2 câu l nh trên, đ n gi n b n ch vi c thay đi u ki n $i<=3 thànhể ị ạ ự ủ ệ ơ ả ạ ỉ ệ ề ệ
$i<1, b n s th y hai k t qu khác nhau li n . Ph n này dành cho b n t ng i nghĩ. OK???ạ ẽ ấ ế ả ề ầ ạ ự ồ
Quên m t, lúc nãy tôi đ c p đ n l nh break, nh ng ch a cho ví d , bây gi chúng ta hãy xem xét víấ ề ậ ế ệ ư ư ụ ờ
d sau:ụ
Các b n bi t r ng giai th a là m t con s l n kinh kh ng, và ch ng trình c a chúng ta s tính toán nạ ế ằ ừ ộ ố ớ ủ ươ ủ ẽ

giai th a, v i s n đ c g i đ n theo đ a ch url: ừ ớ ố ượ ử ế ị ỉ http://dia_chi_trang_web_cua_ban/giaithua.php?n=xx
( đó x là m t s do ng i dùng t nh p)ở ộ ố ườ ự ậ
Do giai th a là m t con s c c kỳ l n, nên chúng ta ch cho phép ng i dùng tính đ n t i đa là 8 giaiừ ộ ố ự ớ ỉ ườ ế ố
th a ch ng h n. N u h nh p l n h n 8 thì sao? Hãy xem đây:ừ ẳ ạ ế ọ ậ ớ ơ
<HTML>
<?php
// Ghi lai voi ten file la giaithua.php
$giaithua=1;
$i=1;
while ( $i<=$n)
{
$giaithua*=$i;
$i+=1;
if ($i>8 )
{
echo ("Chi tinh den 8! <BR>");
break;
}
}
echo ("Ket qua la: ".$giaithua);
?>
</HTML>
Đo n mã trên ch cho phép tính đ n 8 giai th a, n u ng i dùng nh p m t con s l n h n 8 thì máy sạ ỉ ế ừ ế ườ ậ ộ ố ớ ơ ẽ
hi n th 8 giai th a, còn n u nh h n thì v n ch y t t.ể ị ừ ế ỏ ơ ẫ ạ ố
c) Vòng l p for.ặ
Vòng l p for, v i ý nghĩa đ u tiên là l p v i s l n đ nh tr c, có c u trúc nh sau:ặ ớ ầ ặ ớ ố ầ ị ướ ấ ư
for ( $bi n = giá_tr _đ u; $bi n < (hay <=) giá_tr _k t_thúc; tăng_bi n_đ m)ế ị ầ ế ị ế ế ế
{
// Kh i câu l nhố ệ
}

Bi u th c $bi n=giá_tr _đ u, đ m b o bi n đ c gán m t giá tr kh i đ u (1)ể ứ ế ị ầ ả ả ế ượ ộ ị ở ầ
Bi u th c $bi n< (hay <=) giá_tr _k t_thúc, s xác đ nh xem bi n đã đ t đ n giá tr k t thúc (t c làể ứ ế ị ế ẽ ị ế ạ ế ị ế ứ
đi u ki n l p không còn đúng n a) ch a (2)ề ệ ặ ữ ư
Bi u th c tính toán tăng_bi n_đ m đ m b o đ sau m t s l n l p nào đó thì bi u th c xác đ nh đi uể ứ ế ế ả ả ể ộ ố ầ ặ ể ứ ị ề
ki n (2) s d n đ n k t qu sai (đ thoát kh i vòng l p).ệ ẽ ẫ ế ế ả ể ỏ ặ
Ví d :ụ
for ( $i = 1; $i <10; ++$i)
{
echo ("Giá tr c a bi n \$i là: ".$i);ị ủ ế
}
M t bi n d ng khác c a vòng l p for, g n gi ng nh l nh r nhánh if và while:ộ ế ạ ủ ặ ầ ố ư ệ ẽ
for (bieu_thuc_1; bieu_thuc_2; bieu_thuc_3):
// Kh i câu l nhố ệ
endfor;
Ví d :ụ
12
<?php
for ($i=1; $i<=10;++$i)
?>
<TR><TD> <INPUT type="text"> </TD></TR>
<?php
endfor
?>
Bài 9: M ngả
Là m t danh sách các ph n t có cùng ki u d li u.M ng có th là m ng m t chi u hay nhi u chi u.ộ ầ ử ể ữ ệ ả ể ả ộ ề ề ề
M ng có 2 thành ph n là ch m c (key) và giá tr . Ch m c có th là s nguyên ho c là chu i . B n cóả ầ ỉ ụ ị ỉ ụ ể ố ặ ỗ ạ
th kh i t o m ng b ng các cách nh sau:ể ở ạ ả ằ ư
$arr[key] = value;
$arr[] = value;
$arr= array($key1 =>value1,$key2=>value2);

$arr = array(value1, value2);
Nh đã gi i thi u thì m ng có th dùng s nguyên ho c chu i đ làm ch m c , ta t m th i phân lo iư ớ ệ ả ể ố ặ ỗ ể ỉ ụ ạ ờ ạ
ra nhu sau:
1.M ng m t chi u có ch m c: là m ng đ c qu n lý b ng cách s d ng ch s d i ki u integer đả ộ ề ỉ ụ ả ượ ả ằ ử ụ ỉ ố ướ ể ể
bi u th v trí c a giá tr yêu c u.Cú pháp: $name[index1];ể ị ị ủ ị ầ
Ví d : m t m ng m t chi u có th đ c t o ra nh sau:ụ ộ ả ộ ề ể ượ ạ ư
$meat[0]="chicken";
$meat[1]="steak";
$meat[2]="turkey";
N u b n th c thi dòng l nh sau: print $meat[1]; thì trên trình duy t s hi n th dòng sau: steak.ế ạ ự ệ ệ ẽ ể ị
B n cũng có th s d ng hàm array( ) c a PHP đ t o ra m t m ng.Ví d :ạ ể ử ụ ủ ể ạ ộ ả ụ
$meat=array("chicken","steak","turkey");
L u ý : Khác v i các ngôn ng l p trình khác ( nhu Pascal ch ng h n) , ph n t đ u tiên c a m ng cóư ớ ữ ậ ẳ ạ ầ ử ầ ủ ả
ch m c là 0 , không ph i 1 . Nh ng khi khai báo m ng , ch m c kh i đ u không nh t thi t là 0 .ỉ ụ ả ư ả ỉ ụ ở ầ ấ ế
ví d b n t o m ng th nàyụ ạ ạ ả ế
$meat = array("chicken","steak","tukey");
Đ l y ph n t đ u tiên b n s g iể ấ ầ ử ầ ạ ẽ ọ
echo $meat[0];
Nh ng n u khia báo th nàyư ế ế
$arr[5] = 1;
thì ch m c ti p theo là 6.ỉ ụ ế
$arr[] = 3; // key là 6 nhá.
Nh k đ u này nhá , lúc đ u t cũng b PHP l a v chuy n này đ y ( do tr c đây ch h c Pascal).ớ ỹ ề ầ ớ ị ừ ề ệ ấ ướ ỉ ọ
2.M ng m t chi u k t h p: r t thu n l i khi dùng đ ánh x m t m ng s d ng các t h n là sả ộ ề ế ợ ấ ậ ợ ể ạ ộ ả ử ụ ừ ơ ử
d ng các s ( integer), nó giúp ta gi m b t th i gian và các mã yêu c u đ hi n th m t giá tr c th .ụ ố ả ớ ờ ầ ể ể ị ộ ị ụ ể
Ví d : b n mu n ghi l i t t c các th c ăn và các c p r u ngon trong vi c ăn nh u c a mình.ụ ạ ố ạ ấ ả ứ ặ ượ ệ ậ ủ
$annhau["ruou"] = "Minh M ng T u";ạ ử
$annhau["khaivi"] = "L c rang";ạ
$annhau["Trangmieng"] = "Chu i";ố
M t cách khác là b n có th s d ng hàm array( ) c a PHP đ t o ra m t m ng lo i này, ví d nhộ ạ ể ử ụ ủ ể ạ ộ ả ạ ụ ư

sau:
$annhau = array( "ruou" => "Minh M ng T u", "khaivi" => "L c Rang", "trangmieng" => "Chu i");ạ ử ạ ố
Khi truy xu t ph n t m ng :ấ ầ ử ả
echo $annhau["ruou"];
S xu t ra : Minh M ng T uẽ ấ ạ ử
3.M ng nhi u chi u có ch m c: ch c năng c a nó cũng gi ng nh m ng m t chi u có ch m c,ả ề ề ỉ ụ ứ ủ ố ư ả ộ ề ỉ ụ
ngo i tr vi c nó có thêm m t m ng ch m c đ c dùng đ ch đ nh m t ph n t . Cú pháp:ạ ừ ệ ộ ả ỉ ụ ượ ể ỉ ị ộ ầ ử
$name[index1] [index2] [indexN];
M t m ng hai chi u có ch m c đ c t o ra nh sau:ộ ả ề ỉ ụ ượ ạ ư
$position = $chess_board[5][4];
4.M ng đa chi u k t h p: khá h u ích trong PHP. Gi s b n mu n ghi l i các c p r u-th c ăn,ả ề ế ợ ữ ả ử ạ ố ạ ặ ượ ứ
13
không ch lo i r u, mà c nhà s n xu t. B n có th th c hi n nh sau:ỉ ạ ượ ả ả ấ ạ ể ự ệ ư
$pairings["Martinelli"] ["zinfandel"] = "Broiled Veal Chops";
$pairings["Beringer"] ["merlot"] = "Baked Ham";
$pairings["Jarvis"] ["sauvignon"] = "Prime Rib";

H t ph n khái ni m , ti p theo là gi i thi u các hàm đ truy xu t m ngế ầ ệ ế ớ ệ ể ấ ả
Đ truy xu t hay nh p giá tr cho 1 ph n t m ng c th , b n có th g i tr c ti p chúng nh sau:ể ấ ậ ị ầ ử ả ụ ể ạ ể ọ ự ế ư
$arr = $mang[1];
ho cặ
$arr = $dothi["x"];
Cú pháp là tên m ng[ch m c]ả ỉ ụ
Tips : Đ xóa 1 ph n t ra kh i m ng , ta dùng unset()ể ầ ử ỏ ả
Ví dụ
$arr = array(1,2,3,4);
unset($arr[2]);
// $arr bay gi là array(1,2,4);ờ
Đ đi m các ph n t c a m ng , dùng hàm count()ể ế ầ ử ủ ả
$arr = array(1,2,3,4);

$so = count($arr); // đ b n b ng bao nhiu ?ố ạ ằ
Đ duy t qua h t t t c các ph n t c a m ng (truy xu t ho c nh p giá tr ) ta dùng các cách sau:ể ệ ế ấ ả ầ ử ủ ả ấ ặ ậ ị
Cách th nh t , dùng vòng l p forứ ấ ậ
N u bi t tr c s ph n t c a m ng ta có th dùng vòng l p for đ duy t qua các ph n t m ng:ế ế ướ ố ầ ử ủ ả ể ặ ể ệ ầ ử ả
Code:
<?php
$giatri = array(1,2,3,4,5,6,7,8,9,10);
for ($i = 0; $i < 10 ; $i ++)
echo $giatri[$i]."<br>";
?>
Ch y đo n mã trên PHP s xu t ra t 1 đ n 10 .ạ ạ ẽ ấ ừ ế
Đ nh p giá tr vào thì cũng th nháể ậ ị ế
Ví dụ
Code:
<?php
for ($i = 0; $i < 10 ; $i ++)
echo $giatri[$i] = $i +1 ;
?>
Cách th 2 : Dùng Foreachứ
Cú pháp :
Quote
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
Ví dụ
Code:<?php
$giatri = array(1,2,3,4,5,6,7,8,9,10);
foreach ($giatri as $value)
echo $value."<br>";

?>
V i foreach này đ nh p giá tr vào ta ph i thêm d u " &" tr c bi n $value , nh th này &$valueớ ể ậ ị ả ấ ướ ế ư ế
Code:
<?php
$arr = array(1, 2, 3, 4);
14
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
?>
Thêm 1 ví d n a , l n này s có s xu t hi n c a ch m cụ ữ ầ ẽ ự ấ ệ ủ ỉ ụ
Code:
<?php
$arr = array("mot"=>"one", "hai"=>"two","ba"=> "three");
foreach ($arr as $key => $value) {
echo "Key: $key; Value: $value<br />\n";
}
?>
M t cách khác đ làm nh trên ta s dùng vòng l p while đi v i list() và each(). Xét ví d sau , thay vìộ ể ư ẽ ặ ớ ụ
dùng foreach nh trên thì ta dùng while nh sau:ư ư
Code:
<?php
$arr = array("one", "two","three");
while (list($key, $value) = each($arr)) {
echo "Key: $key; Value: $value<br />\n";
}
?>
L u ý , list() ch ho t đ ng v i m ng có ch m c là s và ph n t kh i đ u c a m ng có ch m c là 0ư ỉ ạ ộ ớ ả ỉ ụ ố ầ ử ở ầ ủ ả ỉ ụ
( PHP manual nói th )ế

List s gán giá tr cho bi n đ c khai báo bên trong hàm list v i giá tr là giá tr t ng ng c a m ng.ẽ ị ế ượ ớ ị ị ươ ứ ủ ả
Còn hàm each() s tr v giá tr ch m c và giá tr c a ph n t m ng hi n t i , đ ng th i chuy n v tríẽ ả ề ị ỉ ụ ị ủ ầ ử ả ệ ạ ồ ờ ể ị
c a ch m c lên 1 đ n v , s tr v False n u v trí c a ch m c là v trí cu i cùng trong m ng.C p giáủ ỉ ụ ơ ị ẽ ả ề ế ị ủ ỉ ụ ị ố ả ặ
tr tr v này s n m trong 1 m ng 4 ph n t là 0,1 , key, value . Ph n t 0 và key ch a tên ch m cị ả ề ẽ ằ ả ầ ử ầ ử ứ ỉ ụ
c a m ng, ph n t 1 và value t t nhiên s ch a giá tr .ủ ả ầ ử ấ ẽ ứ ị
Có th ch s d ng while và each thôi cũng đ cể ỉ ử ụ ượ
Code:
<?php
$arr = array("one", "two","three");
while ($phantu = each($arr)) {
echo "Key: $phantu['key']; Value: $phantu['value']<br />\n";
}
?>
Đ i v i m ng nhi u chi u th cách làm cũng t ng t , ch ph c t p h n là thêm 1 vòng l p n a.ố ớ ả ề ề ỉ ươ ự ỉ ứ ạ ơ ặ ữ
Code:
<?php
$sanpham = array( array("ITL","INTEL","HARD"),
array("MIR", "MICROSOFT","SOFT"),
array("PHP", "PHPVN.ORG","TUTORIAL")
);
for ($row = 0; $row < 3; $row++)
{
for ($col = 0; $col <3; $col++)
{
echo "|".$sanpham[$row][$col];
}
echo "<br>";
}
?>
15

M ng ti pả ế :S p x p m ngắ ế ả
Do PHP l u tr các ph n t trong m ng theo th t chúng đ c đ a vào m ng, chính vì v y đôi lúcư ữ ầ ử ả ứ ự ượ ư ả ậ
s n y sinh nhu c u s p x p các ph n t trong m ng. Đ s p x p ta có th dùng các hàm có s n c aẽ ả ầ ắ ế ầ ừ ả ể ắ ế ể ẵ ủ
PHP, tiêu bi u là hàm sortể
Code:
<?php
$arr = array(5, 3, 6, 4, 2, 1);
var_dump($arr);
echo "<br/>\n";
sort($arr);
var_dump($arr);
?>
K t qu thu đ c s là:ế ả ượ ẽ
Quote
array(6) {
* => int(5) [1]=> int(3) [2]=> int(6) [3]=> int(4) [4]=> int(2) [5]=> int(1) }
array(6) {
* => int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(6) }
Các b n có th th y là các giá tr đã đ c s p x p tăng d n tuy nhiên các key cũng đã b thay đ i. Đạ ể ấ ị ượ ắ ế ầ ị ổ ể
d nguyên các key ban đ u, ta s d ng hàm asort. Thay th hàm sort trong ví d b ng asort thì s thuữ ầ ử ụ ế ụ ằ ẽ
đ c k t qu nh sau:ượ ế ả ư
Quote
array(6) {
* => int(5) [1]=> int(3) [2]=> int(6) [3]=> int(4) [4]=> int(2) [5]=> int(1) }
array(6) { [5]=> int(1) [4]=> int(2) [1]=> int(3) [3]=> int(4)
* => int(5) [2]=> int(6) }
Các hàm này cũng s làm vi c t t đ p v i các xâu kí t , tuy nhiên v i 1 m ng có các giá trẽ ệ ố ẹ ớ ự ớ ả ị
"report1.pdf", "report5.pdf", "report10.pdf", and "report15.pdf" thì k t qu thu đ c s là:ế ả ượ ẽ
Quote
"report1.pdf", "report10.pdf", "report15.pdf", "report5.pdf"

Đ n gi n là vì mã ASCII c a "1" nh h n "5" nên k t qu s ra nh v y. Đ gi i quy t v n đ này,ơ ả ủ ỏ ơ ế ả ẽ ư ậ ể ả ế ấ ề
thay vì sort và asort ta s d ng natsort ho c natcasesort. K t qu thu đ c s là:ử ụ ặ ế ả ượ ẽ
"report1.pdf", "report5.pdf", "report10.pdf", "report15.pdf"
S p x p m ng nâng caoắ ế ả
Gi s b n có m ng nhi u chi u sau:ả ử ạ ả ề ề
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");
?>
Khi mu n s p x p m ng $bikes theo price c a m i ph n t thì làm th nào? Không th dùng các hàmố ắ ế ả ủ ỗ ầ ử ế ể
trên đ c! V y gi i pháp duy nh t là ta s ph i t s p x pở ượ ậ ả ấ ẽ ả ự ắ ế
Code:
<?php
function compare_price($in_bike1, $in_bike2)
{
16
if ($in_bike1["price"] > $in_bike2["price"])
{
return 1;
}
else if ($in_bike1["price"] == $in_bike2["price"])

{
return 0;
}
else
{
return -1;
}
}
uasort($bikes, "compare_price");
foreach ($bikes as $bike)
{
echo "Bike {$bike['name']} costs \${$bike['price']}<br/>\n";
}
?>
Trong ví d trên, m u ch t chính là hàm uasort, hàm này s so sánh t ng giá tr trong m ng v i nhauụ ấ ố ở ẽ ừ ị ả ớ
b ng hàm so sánh compare_price. Hàm này s so sánh 2 giá tr đ c đ a vào là $in_bike1 và $in_bike2ằ ẽ ị ượ ư
r i tr l i 1 trong 3 giá tr : 1, 0 ho c (-1) khi so sánh price c a $in_bike1 và $in_bike2. Sau cùng ta sồ ả ạ ị ặ ủ ẽ
thu đ c k t qu :ượ ế ả
Quote
Bike Off-Roadster costs $4295
Bike Slasher XYZ 1000 costs $11450
Bike Grande Tour Meister costs $12999
S p x p ng c l iắ ế ượ ạ
Trong các ph n trên ta đ u th y s p x p tăng d n, v y đ s p x p gi m d n thì làm th nào? Ta cóầ ề ấ ắ ế ầ ậ ể ắ ế ả ầ ế
th s d ng rsort và arsort thay th cho sort và asort. Chú ý là không có ursort! Đ s p x p ng c l iể ử ụ ế ể ắ ế ượ ạ
b n ch c n đ o ng c th t trong hàm so sánh c a mìnhạ ỉ ầ ả ượ ứ ự ủ
S p x p theo keyắ ế
Đ s p x p theo key, ta có các hàm ksort, krsort, và uksort. S p x p theo key s luôn gi nguyên cácể ắ ế ắ ế ẽ ữ
key vì v y không có kasort. Các giá tr đi kèm m i key cũng s đ c gi nguyênậ ị ỗ ẽ ượ ữ
Các hàm khác

array_merge
Hàm này s nh n vào 2 m ng và tr l i 1 m ng trong đó bao g m t t c các giá tr c a 2 m ng banẽ ậ ả ả ạ ả ồ ấ ả ị ủ ả
đ u. Các key s đ c gi nguyên tr tr ng h p:ầ ẽ ượ ữ ừ ườ ợ
2 m ng có 1 key là xâu kí t gi ng nhau, thì giá tr c a m ng th nh t s b ghi đè b ng giá tr c a keyả ự ố ị ủ ả ứ ấ ẽ ị ằ ị ủ
đó m ng th haiở ả ứ
m ng th hai n u trùng các key là s nguyên v i m ng th nh t, thì các giá tr c a m ng th hai sỞ ả ứ ế ố ớ ả ứ ấ ị ủ ả ứ ẽ
nh n 1 key m i (không ghi đè)ậ ớ
Xét ví d :ụ
Code:
<?php
$ar1 = array('name' => 'Zeke', 10, 100);
$ar2 = array('name' => 'Zimbu', 2, 3, 4);
$newar = array_merge($ar1, $ar2);
print_r($newar);
?>
K t qu thu đ c s là:ế ả ượ ẽ
Quote
Array (
[name] => Zimbu
17
* => 10
[1] => 100
[2] => 2
[3] => 3
[4] => 4
)
array_combine
Hàm này nh n vào 2 m ng r i tr l i 1 m ng, trong đó các key là các giá tr c a m ng th nh t, cácậ ả ồ ả ạ ả ị ủ ả ứ ấ
giá tr là t m ng th hai. N u 2 m ng không có cùng s ph n t s báo l i. Xét ví d sau:ị ừ ả ứ ế ả ố ầ ử ẽ ỗ ụ
Code:

<?php
$ar1 = array('name', 'age', 'height');
$ar2 = array('Bob', 23, '5\'8"');
$newary = array_combine($ar1, $ar2);
print_r($newary);
?>
K t qu thu đ c s là:ế ả ượ ẽ
Quote
Array (
[name] => Bob
[age] => 23
[height] => 5'8"
)
array_intersect
Hàm này nh n vào 2 m ng r i tr l i các ph n t cùng có 2 m ng. Các key s đ c gi nguyên,ậ ả ồ ả ạ ầ ử ở ả ẽ ượ ữ
n u cùng 1 giá tr mà l i có 2 key khác nhau thì key m ng th nh t s đ c s d ng. Xét ví d sau:ế ị ạ ở ả ứ ấ ẽ ượ ử ụ ụ
Code:
<?php
$ar1 = array('name' => 'Zeke', 10, 100);
$ar2 = array('eeek' => 'Zeke', 2, 3, 4, 10);
$newar = array_intersect($ar1, $ar2);
print_r($newar);
?>
K t qu thu đ c (đoán tr c r i hãy đ c xem có đúng kô nhé )ế ả ượ ướ ồ ọ
Quote
Array (
[name] => Zeke
* => 10
)
array_search

Khi b n c n tìm 1 giá tr trong m ng thì s d ng hàm này. C u trúc r t đ n gi n:ạ ầ ị ả ử ụ ấ ấ ơ ả
Code:
<?php
$ar1 = array(1, 10, 100, 23, 44, 562, 354);
var_dump(array_search(100, $ar1));
var_dump(array_search(3333, $ar1));
?>
Và đây là k t qu :ế ả
Quote
int(2)
bool(false)
18
Bài 10: Cách l y thông tin t trình duy t: GET, POST, COOKIES.ấ ừ ệ
D li u c a ng i dùng t trình duy t s đ c g i lên máy ch d i d ng t ng c p bi n=giá_tr vàữ ệ ủ ườ ừ ệ ẽ ượ ử ủ ướ ạ ừ ặ ế ị
có th đi theo 3 con đ ng khác nhau. Tuỳ theo t ng con đ ng c th , trên máy ch ta cũng có cácể ườ ừ ườ ụ ể ủ
cách khác nhau đ l y d li u đ c g i lên 3 con đ ng đó là: GET, POST và COOKIES. V y GET,ể ấ ữ ệ ượ ử ườ ậ
POST và COKIES là gì?
1. Truy n d li u thông qua ph ng th c GETề ữ ệ ươ ứ
D li u g i t trình duy t lên qua ph ng th c GET là ph n d li u đ c nh p tr c ti p theo sau đ aữ ệ ử ừ ệ ươ ứ ầ ữ ệ ượ ậ ự ế ị
ch URL do trình duy t g i lên, đ c phân bi t v i tên file script b ng d u h i ch m (?). Ví d , khi taỉ ệ ử ượ ệ ớ ằ ấ ỏ ấ ụ
gõ vào trình duy t đ a ch URL sau:ệ ị ỉ
/>Khi đó, trình duy t s g i theo đ a ch trên m t c p bi n = giá tr , trong đó bi n có tên là TOPIC_ID vàệ ẽ ử ị ỉ ộ ặ ế ị ế
giá tr là 161 (TOPIC_ID=161).ị
Chúng ta cũng có th đ a lên nhi u c p bi t=giá_tr b ng cách phân cách chúng b i d u &:ể ư ề ặ ế ị ằ ở ấ
PHP Viet Nam - Index
V i đ a ch URL trên, chúng ta s g i lên 3 c p bi n=giá_tr theo ph ng th c GET, đó là:ớ ị ỉ ẽ ử ặ ế ị ươ ứ
method=Reply, TOPIC_ID=161 và FORUM_ID=20.
Khi trình duy t g i các thông tin này lên máy ch , PHP s t đ ng sinh ra m t m ng có tên là $_GET[]ệ ử ủ ẽ ự ộ ộ ả
đ n m gi t t c các c p bi n và giá tr đó, trong đó, ch s c a m ng chính là m t chu i mang tênể ắ ữ ấ ả ặ ế ị ỉ ố ủ ả ộ ỗ
c a tên bi n và giá tr c a ch s đó chính là giá tr c a bi n do trình duy t g i lên. Ví d , v i đ a chủ ế ị ủ ỉ ố ị ủ ế ệ ử ụ ớ ị ỉ

URL sau:
61&FORUM_ID=20
Thì PHP s t đ ng sinh ra m t m ng $_GET có n i dung sau:ẽ ự ộ ộ ả ộ
$_GET["method"] = "Reply" // t ng ng v i c p method=Replyươ ứ ớ ặ
$_GET["TOPIC_ID"] = 161 // t ng ng v i c p TOPIC_ID=161ươ ứ ớ ặ
$_GET["FORUM_ID"] = 20 // t ng ng v i c p FORUM_ID=20ươ ứ ớ ặ
Sau đó, trong trang web c a mình, các b n có th tha h s d ng các bi n này. Ví d , tôi làm m tủ ạ ể ồ ử ụ ế ụ ộ
đo n ch ng trình sau đ khi ng i dùng nh p vào bi n user=sinh thì cho hi n th "Hello, my Boss",ạ ươ ể ườ ậ ế ể ị
còn n u bi n user khác sinh thì "Hello " + giá tr c a bi n:ế ế ị ủ ế
Code:
<?
// Hàm isset đ c s d ng đ ki m tra xem m t bi n đã đ c thi t l p hay ch aượ ử ụ ể ể ộ ế ượ ế ậ ư
if (isset ($_GET["user"]))
{
if ($_GET["user"]=="sinh")
{
echo "Hello, my boss. Good morning!";
}
else
{
echo "Hello, " . $_GET["user"] . ". Good morning!";
}
}
else
{
echo "Hello, guest. How do you do?";
}
?>
OK, bây gi hãy save l i. Gi s tôi l u v i tên là welcome.php trong th m c www. M trình duy tờ ạ ả ử ư ớ ư ụ ở ệ
lên, gõ vào ô Address dòng ch sau:ữ

http://localhost/welcome.php?user=sinh
Hãy xem k t qu hi n th trên màn hình, sau đó thay ch sinh b ng m t cái tên gì đó xem k t qu raế ả ể ị ữ ằ ộ ế ả
sao.
II. Ph ng th c POSTươ ứ
Post là ph n d li u đ c g i qua các form HTML có method ="POST" (xin xem l i bài v HTML).ầ ữ ệ ượ ử ạ ề
19
Đ l y các bi n theo ki u POST, PHP s t đ ng sinh ra m ng có tên là $_POST[]. M ng này có chể ấ ế ể ẽ ự ộ ả ả ỉ
s chính là tên c a các ph n t trong form (các th input, select có thu c tính name) và giá tr là n iố ủ ầ ử ẻ ộ ị ộ
dung giá tr do ng i s d ng nh p vào các ph n t có tên t ng ng. Ch ng h n v i m u bi uị ườ ử ụ ậ ầ ử ươ ứ ẳ ạ ớ ẫ ể
HTML sau:
Code:
<form method="POST">
<p>
User Name:<input type="text" name="T1" size="20"> </p>
<p>
Password:
<input type="password" name="T2" size="20"></p>
<p>Sex: <Select name ="sex">
<option value =1>Male </option>
<option value =0>Female </option>
</select>
</p>
<input type="submit" value="Gui di" name="B1">
</form>
Khi ng i dùng nh p user name (gi s là Sinh), password (gi s là 123456) và ch n sex là Male, khiườ ậ ả ử ả ử ọ
đó, m ng $_POST s có các ph n t sau:ả ẽ ầ ử
$_POST["T1"] = Sinh
$_POST["T2"] = 123456
$_POST["sex"] = 1
Sau khi l y đ c các giá tr này r i, các b n có th tho i mái s d ng.ấ ượ ị ồ ạ ể ả ử ụ

Đây là ví d m t ch ng trình gi i ph ng trình b c nh t (cho nó đ n gi n Grin)ụ ộ ươ ả ươ ậ ấ ơ ả
Code:
<form method="POST">
<p style="margin-top: 0; margin-bottom: 0">
Nh p a:<input type="text" name="a" size="20"></p>ậ
<p style="margin-top: 0; margin-bottom: 0">Nh p b:<input type="text" name="b" size="20"></p>ậ
<p style="margin-top: 0; margin-bottom: 0">
<input type="submit" value="Tính" name="B1"></p>
</form>
<?
$a=0;
$b=0;
if (isset ($_POST["a"]))
{
$a =$_POST["a"];
}
if (isset ($_POST["b"]))
{
$b =$_POST["b"];
}
if ($a<>0)
{
echo "<BR>Nghiem la: " . $b/$a;Ch này là -$b/$aỗ
}
else
{
if ($b==0)
{
echo "<BR>Vo so nghiem";
}

else
20
{
echo "<BR>Vo nghiem";
}
}
?>
Bây gi hãy làm c c cafe ho c trà đá cho t nh táo.ờ ố ặ ỉ
III Cookie và cách s d ng Cookieử ụ
Cookies là m t ph n d li u đ c l u trên máy khách. M i khi máy khách g i m t yêu c u t i máyộ ầ ữ ệ ượ ư ỗ ử ộ ầ ớ
ch nào đó, thì nó s g i ph n d li u đ c l u trong cookie t ng ng v i máy ch đó.ủ ẽ ử ầ ữ ệ ượ ư ươ ứ ớ ủ
Trong Cookie có m t s thông s sau:ộ ố ố
- Đ a ch URL mà trình duy t s g i cookie t iị ỉ ệ ẽ ử ớ
- Th i gian h t h n c a cookieờ ế ạ ủ
- Các c p bi n:giá tr đ c l u tr liên t cặ ế ị ượ ư ữ ụ
Ng i ta th ng dùng cookies đ l u tr các thông tin có liên quan đ n nhi u "phiên" làm vi c khácườ ườ ể ư ữ ế ề ệ
nhau. Vi giao th c HTTP là giao th c không l u tr ng thái (M i khi x lý xong m t yêu c u t máyứ ứ ư ạ ỗ ử ộ ầ ừ
khách là nó ph i tay t ng t k t n i luôn và ch ng thèm quan tâm đ n máy khách làm gì ), nên cookiesủ ự ắ ế ố ẳ ế
đ c sinh ra đ làm nhi m v l u tr m t s bi n tr ng thái đ kh c ph c nh c đi m này.ượ ể ệ ụ ư ữ ộ ố ế ạ ể ắ ụ ượ ể
Khác v i d li u g i t form (Post hay Get) thì cookies s đ c trình duy t t đ ng g i đi theo m iớ ữ ệ ử ừ ẽ ượ ệ ự ộ ử ỗ
l n truy c p lên máy ch . Trong quá trình làm vi c, cookie có th b thay đ i giá tr . Cookie s b vôầ ậ ủ ệ ể ị ổ ị ẽ ị
hi u hoá n u c a s trình duy t đi u khi n cookie đóng l i và cookie h t th i gian có hi u l c. Theoệ ế ử ổ ệ ề ể ạ ế ờ ệ ự
m c đ nh, th i gian "s ng" c a cookies là t n t i cho đ n khi c a s trình duy t s d ng cookies bặ ị ờ ố ủ ồ ạ ế ử ổ ệ ử ụ ị
đóng. Tuy nhiên ng i ta có th thi t l p tham s th i gian đ cookie có th s ng lâu h n (6 thángườ ể ế ậ ố ờ ể ể ố ơ
ch ng h n). Ví d nh ch đ Remember ID & Password c a 1 s trang web.ẳ ạ ụ ư ế ộ ủ ố
Cách ghi thông tin vào cookie và g i xu ng trình duy tử ố ệ
Trong PHP, đ g i cookie xu ng trình duy t, ta có th s d ng hàm setcookie:ể ử ố ệ ể ử ụ
setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
Trong đó:
- string name: Chu i mang tên c a cookieỗ ủ

- string value: Chu i mang giá tr c a cookie t ng ng v i tên đã choỗ ị ủ ươ ứ ớ
- int expire: Th i gian h t h n c a cookieờ ế ạ ủ
- string path: Đ ng d n c a cookie (đ n 1 th m c nào đó trên máy ch . Tham s này cho bi t cookieườ ẫ ủ ế ư ụ ủ ố ế
s ch đ c truy n đi n u nh trang web mà trình duy t yêu c u n m trên th m c đó, thay vì lúc nàoẽ ỉ ượ ề ế ư ệ ầ ằ ư ụ
cũng ph i g i đi t i b t kỳ khu v c nào).ả ử ớ ấ ự
- string domain: cookie này s đ c g i t i domain nào?ẽ ượ ử ớ
- int secure: Ch đ b o m t.ế ộ ả ậ
Các tham s trong c p d u ngo c vuông là tuỳ ch nố ặ ấ ặ ọ
Ví d : setcookie ("ten_truy_cap","lan gio vo tinh");ụ
Chú ý: Hàm setcookie ph i đ c g i tr c khi b n g i b t kỳ m t n i dung nào xu ng trình duy t:ả ượ ọ ướ ạ ử ấ ộ ộ ố ệ
VD: Cách dùng đúng:
Code:
// Th c hi n các câu l nh nào đó, nh ng không đ c phép g i gì xu ng trình duy tự ệ ệ ư ượ ử ố ệ
setcookie ("ten_truy_cap","lan gio vo tinh");
setcookie ("password","thumotti");
// Th c hi n các câu l nh ti p theo, có th xu t d li u xu ng trình duy t:ự ệ ệ ế ể ấ ữ ệ ố ệ
echo "<html><body>Xin chào lan gio vo tinh";
VD: Cách dùng sai:
Code:
// Th c hi n các câu l nh nào đóự ệ ệ
echo ("cái gì đó");
setcookie ("ten_truy_cap","lan gio vo tinh");
setcookie ("password","thumotti");
// các câu l nh khác.ệ
Ví d trên sai vì b n đã trót g i dòng "cái gì đó" xu ng trình duy t tr c khi g i hàm setcookie.ụ ạ ử ố ệ ướ ọ
21
Cách l y d li u l u trong cookie:ấ ữ ệ ư
Đ l y d li u đã l u trong cookies do trình duy t g i lên, ta có th dùng m ngể ấ ữ ệ ư ệ ử ể ả
$_COOKIE["tên_cookie"]
Ch ng h n, v i câu l nh setcookie trên, sau khi trình duy t g i lên, ta s có 2 bi n sau:ẳ ạ ớ ệ ở ệ ử ẽ ế

$_COOKIE["ten_truy_cap"] // ch a giá tr "lan gio vo tinh"ứ ị
$_COOKIE["password"] // ch a giá tr "thumotti".ứ ị
Chi ti t h n các b n có th xem trong PHP Manual.ế ơ ạ ể
PHP: Superglobals - Manual
Note : C p nh t thêm v i sorivevolậ ậ ở
Do t php 4.1 thì có thêm $_POST, $_GET, $_REQUEST,$_COOKIE etc . & tr thành super globalừ ở
variable & cũng do lý do t c đ nên register_long_arrays th ng đ c off, do v y các b n khi s d ngố ộ ườ ượ ậ ạ ử ụ
$HTPP_*_VARS s có th x y ra 1 s l i.ẽ ể ả ố ỗ
Cho nên các b n nên s d ng $_POST,$_GET,$_COOKIE,etc. đ l p trình. ạ ử ụ ể ậ
Plugin Ki m th update 2 /6/ 2011 !ế ế
Plugin Ki m th update 2 /6/ 2011 ! ế ế
link Dowloa : << Dowloa >>
H NG D N TRAIN KHÔNG C N DÙNG KIM TÊ ƯỚ Ẫ Ầ
- Các b n l y t a đ luy n trong BVĐ. L a ch n s th c ăn c n mua là 8 cáiạ ấ ọ ộ ệ ự ọ ố ứ ầ
- Khi train các b n nh n vào ch luy n nhân v t s t đi đ n t a đ luy n. Sau khi luy n h t s th cạ ấ ữ ệ ậ ẽ ự ế ọ ộ ệ ệ ế ố ứ
ăn ( VD: mua 8 cái thì luy n 4h khi luy n 4h kô th h ng h t đ đ c ). H t 8 cái th c ăn s t đ ngệ ệ ể ỏ ế ồ ượ ế ứ ẽ ự ộ
v thành mua th c ăn và s a đ r i quay l i đi m train -> v y là OK train kô s h ng đề ứ ử ổ ồ ạ ể ậ ợ ỏ ồ
Ngày 22-10
+ Fix l i phiên b n m iỗ ả ớ
+ Fix l i đang ch i b thoát accỗ ơ ị
+ Chú ý: Hôm nay ch a quét đ c virut. Các b n dow v r i t quét tr c tuy n nhé ( Do máy mình bư ượ ạ ề ồ ự ự ế ị
nhi m virut Wrom nên không cài đ c ph n m m di t virut )(Mình cũng đang dùng các b n yên tâm )ễ ượ ầ ề ệ ạ
17/9/2010
+Add Combo Ngũ Đ c Ch ngộ ưở
+Event trung thu [Alt+E]
+S a l i giao di n thanh Homeử ạ ệ
+ Click vào nút QD or Hòm đ s giúp thanh home n i lênồ ẽ ổ
+T đ ng nhìn th y v t ph m eventự ộ ấ ậ ẩ
( Ch a fix đ c kim tê do VNG can thi p )ư ượ ệ
Đ có th d dàng th y đ c các v t ph m event vào ki m th xóa cái th m c:ể ể ễ ấ ượ ậ ẩ ế ế ư ụ

kiemthe\log và
kiemthe\logs và user\3943685223 ( có th máy b n s khác, nh ng gi ng th này )ể ạ ố ư ố ế
09/09/2010:
- S a l i t đ ng tr l i.ử ỗ ự ộ ả ờ
- S a m t s l i th c hi n t đ ng trong HLVM (đoán s lúc tìm QAT xong)ử ộ ố ỗ ự ệ ự ộ ố
- B sung thêm 5D s d ng 2 skill (5x và 9x): đang test th khi d n damage 2 skill trên ng i, trên quáiổ ử ụ ử ồ ườ
thì th y r t OK.ấ ấ
- Và s a nh ng l i nh khác.ử ữ ỗ ỏ
28-08
+ add skill MTCC cho CLK ( combo )
+ Fix t a đ boss HK (phím U)ọ ộ
+ Gia tăng l a ch n cho ch c năng săn h i t cự ọ ứ ả ặ

*Tính năng 4' v thành 1 l n khi train setting BVĐ (save l i đ c) New: ko ăn h t th c ăn, ko s a đề ầ ạ ượ ế ứ ử ồ
m i l n v , tóm lai train nh x a + 4' v thành 1 l n r i ngay l p t c quay l i trainỗ ầ ề ư ư ề ầ ồ ậ ứ ạ
Yêu c u :ầ
+ Ph i thi t đ t toa đ trainả ế ặ ộ
+ Ph i thi t đ t thành v trong setting BVĐả ế ặ ề
+ Thành v ko đ c trùng v i map g n t a đ trainề ượ ớ ầ ọ ộ
+ Đ c bi t ko train map 9x (phong đô qu thành) ặ ệ ở ỷ
+ Khi train cho phép ng i ch i l y t a đ phù an toàn khi phù v thành ườ ơ ấ ọ ộ ề
22
Remote Quân Doanh phím [pagedown]
+ Đi u khi n các acc ph trong quân doanh ( t t h tr Alt+M )ề ể ụ ắ ỗ ợ
+ Có th khi n ch c năng Vip b t/t t [Ctrl+Q] và b t/t t [Ctrl+F] ngoài map bình th ng b ng cáchể ể ứ ậ ắ ậ ắ ườ ằ
b t h tr PT [Alt+N]ậ ỗ ợ
+ Có th k t h p ch c năng t đoán s 0 t ng 2 HLVMể ế ợ ứ ự ố ầ
Nh n vào đây đ xem nh rõ h n ([B n ph i đăng ký m i nhìn th y link. ]) ấ ể ả ơ ạ ả ớ ấ
+ SupermapLink
- Di chuy n nhanh v i 1 clickể ớ

- T đ ng t t b n F4ự ộ ắ ả
- T lên ng a h p lýự ự ợ
- Theo sau [Ctrl+Q] thông minh xuyên su t các mapố
- T đ ng n ok khi nh n nhi m vự ộ ấ ậ ệ ụ
Đ kick ho t t t c các tinh năng c a supermaplink, khi vào game ph i di chuy n b ng thanh homeể ạ ấ ả ủ ả ể ằ
( t 1 l n tr lên ) ừ ầ ở
+ Ch c năng h n gi đi v t i gia t c ứ ẹ ờ ượ ả ộ
+ B c 1 : Click vào ô ch n VAGT nh hình vướ ọ ư ẽ
+ B c 2: Click vào ô h n gi nh hình v và ch n timeướ ẹ ờ ư ẽ ọ
+ B c 3: Ch nh s nhi m v làm BVĐ v 0 ho c b n đã hoàn thành h t s nhi m v BVĐ trongướ ỉ ố ệ ụ ề ặ ạ ế ố ệ ụ
ngày
+ B c 4: n nút l u , t b c này tr đi mu n làm gì thì làm, ko đ c n nút star BVĐ (B t đ u) .ướ Ấ ư ừ ướ ở ố ượ ấ ắ ầ
mu n train thì n nút trainố ấ
Nh n vào đây đ xem nh rõ h n ([B n ph i đăng ký m i nhìn th y link. ])ấ ể ả ơ ạ ả ớ ấ
+Thi t k thanh Home ki u m i . không che buff skill ế ế ể ớ
+ Thêm ch c năng NM đánh không buff trong [Ctrl+Q]ứ
+ Rút g n hi n th PT và hi n Phái bên ngoài luôn ọ ể ị ệ
Cách thi t l p c u hình [Ctrl+F] đ Plugin có th ho t đ ng t t nh t v i t t c các tính năng nh :ế ậ ấ ể ể ạ ộ ố ấ ớ ấ ả ư
BVĐ, Săn H i T c, Train, v v. (ai không thích sài combo thì b nút &quot;k t h p chiêu th cả ặ ỏ ế ợ ứ
đi&quot;
V t t t c huy n tinh và trang b c p th p ứ ấ ả ề ị ấ ấ
Săn H i T c [Ctrl+3]ả ặ
Các thành viên có th s d ng ch đ m c đ nh c a h th ng , còn key thì ch n &quot;tác vể ử ụ ế ộ ặ ị ủ ệ ố ọ ụ
ch &quot; là +6 giây là đ pờ ẹ
+ Nga My c m key : t nh n nhi m v chia s cho c nhóm , sau đó NM ch y tr c lên boss HT vàầ ự ậ ệ ụ ẻ ả ạ ướ
buff
+ Khi đánh xong c team s v tr NV và Nga My s ti p t c nh n NM r i chia cho c nhómả ẽ ề ả ẽ ế ụ ậ ồ ả
+ Trong quá trình ch y đi ra ch boss dù các b n có làm thêm đ ng tác gì thì sau khi hoàn thi n , hạ ỗ ạ ộ ệ ệ
th ng s ti p t c đi săn HT mà ko c n kick ho t l iố ẽ ế ụ ầ ạ ạ
+ Khi Key ch t s t n m yên nh thành viên và khi hoàn thành song nhi m v cũng s phù v trế ẽ ự ằ ư ệ ụ ẽ ề ả

nhi m v nh thành viênệ ụ ư
+ N u click vào ô &quot;Nga My chi n&quot; thì nhân v t là Nga My s không buff mà chuy n quaế ế ậ ẽ ể
ch đ đánh [Ctrl+F]ế ộ
+ N u click vào ô &quot;làm BVĐ&quot; thì nh t v t sau khi hoàn thành h t t t c các nhi m v sănế ậ ậ ế ấ ả ệ ụ
h i t c thì s chuy n qua ch đ làm BVĐ (c u hình BVĐ tùy do b n th t đ t t tr c) = Thoát gameả ặ ẽ ể ế ộ ấ ạ ế ặ ừ ướ
+ Luy n+ Làm BVĐ ệ
+ N u click vào ô v t đ thì khi phù v thành s v t đ ( by Bear00 )ế ứ ồ ề ẽ ứ ồ
*****Các b n b m phím U lên đ xem các phím t t c a các tính năng khác n a*****ạ ấ ể ắ ủ ữ
[Shift+0] T t/b t hi n th Môn phái-C p ắ ậ ể ị ấ
[Shift+X] Ghép Huy n Tinh có l a ch nề ự ọ
[Shift+A] Xông vào HLVM và VAGT

[Tab] Ch đ t click &quot;Nh n Nh Ng c&quot;+&quot;C T m B o&quot;ế ộ ự ạ ư ọ ờ ầ ả
[U] SuperMaplink
[Y] B ng h tr : Buff ,g i giúp đ , PKả ổ ợ ọ ở
23
[N] Thi t l p ch đ t rao các kênhế ậ ế ộ ự
[F]-[Ctrl+F] B t t đánh.ậ ự
[F1] Hi n th đ p m t, ch c năng tài phú ể ị ẹ ắ ứ
[F12] Hi n th chi ti t thông tin nhân v t-ngày-tu nể ị ế ậ ầ
[End] Tool BVĐ - HLVM - HPNS
[Home] Tools công c đa ch c năngụ ứ
[Pagedown] Công c Remote Auto Quân doanhụ
[C] Lên xu ng ng a [C] và [M]ố ự
[G] Kỳ Trân Các
[T] Đ u giáấ

[Ctrl+1] B t/t t t đào kho báuậ ắ ự
[Ctrl+2] B t/t t m r ng thu c tiêu dao c cậ ắ ở ươ ố ố
[Ctrl+3] Thi t l p săn H i t cế ậ ả ặ

[Ctrl+4] B t/t t t nh n - tr đ c sáchậ ắ ự ậ ả ọ
[Ctrl+5] B t/t t t quay chúc phúcậ ắ ự
[Ctrl+6] Mua th c ăn - s a đứ ử ồ
[Ctrl+7] Ghép Huy n tinhề
[Ctrl+8] Ng ng Bao V n Đ ngừ ạ ồ
[Ctrl+9] Làm Bao V n Đ ng (trang b Truy n t ng phù)ạ ồ ị ề ố
[Ctrl+A] Nh t H t không bõ xót, không l c.ặ ế ọ
[Ctrl+Q] B t/t t Buff-H t ngậ ắ ộ ố
[Ctrl+X] Nga My t đ ng buff t i ch làm NVự ộ ạ ỗ
[Ctrl+R] B t/t t t xu t chiêu t i ch theo h ng chu t.ậ ắ ự ấ ạ ổ ướ ộ
[Ctrl+K] M r ng t xa.ở ươ ừ
[Ctrl+N] B t/t t ch đ t tr l i(Auto Reply)ậ ắ ế ộ ự ả ờ
[Ctrl+M] B t/t t t đ ng tr l i câu h i Hoa Đăngậ ắ ự ộ ả ờ ỏ

[Alt+1] L y t a đ hi n t i ấ ọ ộ ệ ạ
[Alt+2] B t/t t t đ ng ph tr (m c đ nh luôn luôn t t)ậ ắ ự ộ ụ ợ ặ ị ắ
[Alt+3] B t/t t ch đ ph n khángậ ắ ế ộ ả
[Alt+4] B t/t t ch đ quay l i đi m ch tậ ắ ế ộ ạ ể ế
[Alt+5] Danh sách v t ph m đenậ ẩ
[Alt+6] B t/t t t đ ng m r ng thu c lakậ ắ ự ộ ở ươ ố
[Alt+7] Ch a thi t l pư ế ậ
[Alt+8] B t/T t tìm Nhan Nh Ng cậ ắ ư ọ
[Alt+M] T t/b t ch c năng h tr trong H i Lăngắ ậ ứ ổ ợ ả
[Alt+N] T t/b t ch c năng h tr Remoteắ ậ ứ ổ ợ
[Alt+C] T t/b t ch c năng t đoán s 0 cho acc ph HLVM ắ ậ ứ ự ố ụ
[Alt+A] B t/t t: nh t v t ph m nhi m vậ ắ ặ ậ ẩ ệ ụ
[Alt+V] B t/t t: Ch v sò vàngậ ắ ế ỏ
-H tr m khóa nhanh 1 clickỗ ợ ở
-H tr h i sinh b ng đ ng khóa , trong lúc ch t v n chát và s d ng đ c &quot;s đ đ ng tâmỗ ợ ồ ằ ồ ế ẫ ử ụ ượ ư ồ ồ
phù&quot;

+H tr nh t Quang nh Th ch : khi đ ng g n Quang nh Th ch kênh Đ i chát có s &quot;3&quot;.ổ ợ ặ Ả ạ ứ ầ Ả ạ ộ ố
+H tr giúp đ &quot;Tri u t p::&quot; Kênh Bang-B n-Đ i-T c.ổ ợ ở ệ ậ ạ ộ ộ
+H tr : luôn luôn Đ c Sách khu v c Phi chi n đ u.ổ ợ ọ ở ự ế ấ
+Ch c năng Chúc Phúc trong Tools: nh n l n 1 Chúc t đ ng, nh n l n 2 Chúc B ng Tay.ứ ấ ầ ự ộ ấ ầ ằ
+T đ ng đ i tho i nhi m v nhanh, T nh n nh n nhi m v , t ăn &quot;th t bò Quân Doanh&quot;ự ộ ố ạ ệ ụ ự ấ ậ ệ ụ ự ị
các túi &quot;Quân h ng&quot;ưở
+H tr xem Skill, xem tr c c ng hóa trang b , giá bán shop, nút s a nhanh trang b khi giao d ch v iổ ợ ướ ườ ị ử ị ị ớ
NPC (có thêm nút s a k )ử ỹ
+T m Tu Châu 0,5 gi khi có l a tr i.ự ở ờ ử ạ
24
+CHÚ Ý ch c năng nh t đ : ch nh t trang b .ứ ặ ồ ỉ ặ ị
+Hành trang r ng nâng cao, ch c năng s p x p, l a bõ trang b không đ t yêu c u.ươ ứ ắ ế ọ ị ạ ầ
******C u hình buff c a 1 s phái nh sau*******ấ ủ ố ư
+Trong ch đ t đ ng đánh [Ctrl+F]ế ộ ự ộ
-B buff skill Minh Giáo Ki m chiêu 110 trong t đánh [F] và [Ctrl+F] trong [Alt+F2] v n đ , pk thìỏ ế ự ẫ ể
t t điắ
-B buff skil Lăng Ba Vi B c a đoàn th ch trong ch c năng t đ ng đánh [F] và [Ctrl+F]ỏ ộ ủ ị ỉ ứ ự ộ
+Trong ch đ buf skill cá nhân[Alt+2] (m c đ nh luôn t t)ế ộ ặ ị ắ
-Cho phépbuff skil Lăng Ba Vi B c a đoàn th đ ti n khi trainộ ủ ị ể ệ
+Trong ch đ săn h i t c [Ctrl+3]ế ộ ả ặ
-Cho phép s d ng buff skill cá nhân c a t t c các pháiử ụ ủ ấ ả
***************L u ý:**************ư
1.Plugin hi n nay đã add Combo skill 110 c a t t c các phái [ Combo vô đ ch ] Fix l i n khi train c aệ ủ ấ ả ị ỗ ộ ủ
t t c các phái ấ ả
2. H th ng đã m c đ nh l u c u hình BVĐ và pass R ng vào th m c KiemThe/User nên khi upệ ố ặ ị ư ấ ươ ư ụ
phiên b n m i và thay đ i plugin các b n không c n ch nh l i c u hình cho nhân v tả ớ ổ ạ ầ ỉ ạ ấ ậ
3.Đã &quot;tr m&quot; cái t đ ng g i nh c nh c a VNG nên c sài vô t , có check ô hay khôngả ự ộ ử ắ ở ủ ứ ư
cũng không v n ch y t tẫ ạ ố
Ch đ quay l i đi m ch t nh sau: ế ộ ạ ể ế ư
- Trong theo sau Ctrl+Q ( luôn t t )ắ

- Trong săn H i T c Ctrl+3 ( luôn t t )ả ặ ắ
- Trong ch đ train ( luôn b t ) ế ộ ậ
Download v => Gi i nén ra và copy t t c vào th m c g c c a Ki m Th ( L u Ý , xóa h t Pluginề ả ấ ả ư ụ ố ủ ế ế ư ế
cũ tr c khi cài đ t ) ướ ặ
Ko bi t nhi u v Plugin thì b m U vào xem H ng D n v Plugin.ế ề ề ấ ướ ẫ ề
Link DowLoa : << Dowloa >>
Bài 11: Các thông tin khác liên quan đ n trình duy t và máy ch .ế ệ ủ
Trong PHP, ngoài các thông tin trình duy t g i lên thông qua các con đ ng POST, GET, COOKIES,ệ ử ườ
chúng ta cũng có th thu đ c m t s thông tin khác có liên quan đ n trình duy t cũng nh các thôngể ượ ộ ố ế ệ ư
s liên quan đ n máy ch nh : đ ng d n, đ a ch IP, phiên b n Các thông tin này đ c l u trố ế ủ ư ườ ẫ ị ỉ ả ượ ư ữ
trong bi n m ng $_SERVER (đ i v i các phiên b n m i) ho c $HTTP_SERVER_VARS (đ i v i cácế ả ố ớ ả ớ ặ ố ớ
phiên b n cũ h n b n 4.1.0):ả ơ ả
$_SERVER['PHP_SELF']: Tên file n m trên th m c g c c a website. Ví d : bi nằ ư ụ ố ủ ụ ế
$_SERVER['PHP_SELF'] trong script đ t t i đ a ch ặ ạ ị ỉ s làẽ
/test.php/foo.bar.
$_SERVER['SERVER_NAME']: Tên c a máy ch host, n i mà đo n script đ c th c thi. N u đo nủ ủ ơ ạ ượ ự ế ạ
script này đang ch y trên m t host o thì giá tr này s tr v tên host o đó.ạ ộ ả ị ẽ ả ề ả
$_SERVER['SERVER_SOFTWARE']: Chu i đ nh danh c a máy ch , th ng đ c c p trong ph nỗ ị ủ ủ ườ ượ ấ ầ
header khi tr l i các yêu c u t máy khách.ả ờ ầ ừ
$_SERVER['SERVER_PROTOCOL']: Tên và phiên b n c a giao th c mà trang web yêu c u. VD:ả ủ ứ ầ
'HTTP/1.0';
$_SERVER['REQUEST_METHOD']: Lo i yêu c u đ c s d ng đ truy c p trang web. VD: 'GET',ạ ầ ượ ử ụ ể ậ
'HEAD', 'POST', 'PUT'.
$_SERVER['QUERY_STRING']: Câu truy v n (ch a các thông tin liên quan đ n các bi n và giá tr c aấ ứ ế ế ị ủ
ph ng th c GET.ươ ứ
$_SERVER['DOCUMENT_ROOT']: Th m c g c c a website, n i mà file script đang đ c th c thi.ư ụ ố ủ ơ ượ ự
$_SERVER['HTTP_HOST']: Nh ng n i dung liên quan đ n Host header l y t yêu c u hi n t iữ ộ ế ấ ừ ầ ệ ạ
$_SERVER['REMOTE_ADDR']: Đ a ch c a trình duy t, n i ng i s d ng đang duy t web.ị ỉ ủ ệ ơ ườ ử ụ ệ
$_SERVER['REMOTE_PORT']: C ng đ c s d ng trên máy khách (đ k t n i t i web server).ổ ượ ử ụ ể ế ố ớ
$_SERVER['SCRIPT_FILENAME']: Đ ng d n tuy t đ i c a file ch a script đang ch yườ ẫ ệ ố ủ ứ ạ

$_SERVER['SERVER_PORT']: C ng c a máy ch web đ c m đ truy n d li u. M c đ nh làổ ủ ủ ượ ở ể ề ữ ệ ặ ị
c ng 80.ổ
$_SERVER['SERVER_SIGNATURE']: Chu i ch a phiên b n c a máy ch và tên host o (n u đ cỗ ứ ả ủ ủ ả ế ượ
b t)ậ
25

×