Tải bản đầy đủ (.doc) (35 trang)

Giáo trình môn lập trình ứng dụng web với ngôn ngữ PHP

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 (632.55 KB, 35 trang )

MỤC LỤC
I. TỔNG QUAN............................................................................................................................................3
1. Web Server............................................................................................................................................3
II. Ngôn ngữ PHP..........................................................................................................................................3
1. Kiến trúc họat động cơ bản của DYNAMIC WEB...............................................................................4
a. Client .................................................................................................................................................4
b. Server.................................................................................................................................................5
c. MIDDLE WARE...............................................................................................................................5
III. PHP và Webserver APACHE.................................................................................................................5
1. Cài đặt PHP và Apache.........................................................................................................................5
2. Cấu hình web server APACHE..........................................................................................................10
IV. Nhập môn lập trình php.........................................................................................................................10
1. Code PHP trong HTML.......................................................................................................................10
a. Nhúng code PHP vào trong web......................................................................................................10
b. Thẻ PHP...........................................................................................................................................10
c. Sử dụng dấu ;...................................................................................................................................11
d. Ghi chú trong php............................................................................................................................11
2. Sử dụng Biến.......................................................................................................................................11
a. Biến Form........................................................................................................................................11
b. Khai báo biến...................................................................................................................................11
c. Kiểu dữ liệu của biến.......................................................................................................................12
d. Bíên dạng biến thiên........................................................................................................................12
e. Biến hằng trong PHP.......................................................................................................................12
f. Tầm họat động của biến...................................................................................................................12
g. Biến mảng........................................................................................................................................12
h. Chuyển đổi biến...............................................................................................................................15
i. Kiểm tra kiểu dữ liệu biến................................................................................................................15
3. Tóan tử trong PHP...............................................................................................................................15
a. Tóan tử số học..................................................................................................................................15
b. Tóan tử ghép chuỗi..........................................................................................................................15
c. Tóan tử kết hợp................................................................................................................................15


d. Tóan tử So sánh...............................................................................................................................16
e. Tóan tử logic....................................................................................................................................16
f. Toán tử ?...........................................................................................................................................16
g. Tóan tử error....................................................................................................................................16
4. Cấu trúc ngôn ngữ...............................................................................................................................17
a. Phát biểu if.......................................................................................................................................17
b. Phát biểu else...................................................................................................................................17
c. Phát biểu elseif.................................................................................................................................18
d. Phát biểu switch...............................................................................................................................18
e. Phát biểu vòng lặp While.................................................................................................................18
f. Phát biểu vòng lặp do….while.........................................................................................................19
g. Phát biểu vòng lặp for......................................................................................................................19
h. Thoát khỏi cấu trúc..........................................................................................................................19
5. Tạo hàm trong PHP.............................................................................................................................20
a. Khai báo hàm...................................................................................................................................20
b. Gọi hàm...........................................................................................................................................20
c. Truyền tham số................................................................................................................................20
d. Hàm có giá trị trả về........................................................................................................................21
e. Tham biến........................................................................................................................................22
6. Hàm thư viện ......................................................................................................................................22
a. Hàm sử lý số ...................................................................................................................................22
b. Hàm sử lý chuỗi...............................................................................................................................23
c. Hàm xử lý thời gian.........................................................................................................................25
d. Các hàm thư viện khác....................................................................................................................27


V. Lập trình PHP với cở sở dữ liệu.............................................................................................................28
1. Kết nối cơ sở dữ liệu............................................................................................................................28
2. đóng kết nối cơ sở dữ liệu...................................................................................................................28
3. Truy vấn cơ sở dữ liệu.........................................................................................................................28

a. Mở 1 recordset.................................................................................................................................28
b. Đếm số lượng records......................................................................................................................28
c. Đọc từng record từ recordset...........................................................................................................29
VI. Điều khiển session.................................................................................................................................31
VII. Điều khiển Cookie...............................................................................................................................31
VIII. Truy vấn dữ liệu file trong PHP.........................................................................................................32
1. Mở file ................................................................................................................................................32
2. Đọc nội dung trên file..........................................................................................................................33
3. Ghi dữ liệu vào file..............................................................................................................................33
4. Đóng file..............................................................................................................................................34
5. Kiểm tra file.........................................................................................................................................34
6. Kiểm tra dung lượng của file...............................................................................................................35
7. Xóa file................................................................................................................................................35

Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

2


I. TỔNG QUAN
1. Web Server
Chức năng của Web Server có vẻ không phức tạp mấy. Nó chỉ ở tại chỗ, chạy trên nền của HĐH, lắng
nghe các yêu cầu ai đó trên Web gởi đến, sau đó trả lời những yêu cầu này, và cấp phát những trang Web
thích ứng. Thực tế thì nó không quá đơn giản như vậy, bởi vì nhiệm vụ của Web Server là phải cung cấp
tính ổn định cho môi trường Web cho nên đòi hỏi này phải được đáp ứng một cách rất nghiêm túc.
Có nhiều loại Web Server khác nhau, nhưng chủ yếu trên thị trường chỉ thường sử dụng Apache và IIS
(Internet Information Server của Microsoft). INTERNET INFORMATION SERVER (IIS) được gắn liền
với môi trường Windows và nó là thành phần không thể thiếu của Active Server Pages (ASP). Nếu bạn
chọn con đường của Microsoft thì có lẽ bạn đã hiểu rõ về IIS.
Có một sự tích hợp nhất định giữa một ngôn ngữ lập trình và một Web Server. Cũng vậy, PHP được tích

hợp rất tối đối với IIS. Trước đây, có một số vấn đề cần phải bàn về tính ổn định của PHP/IIS với việc
truyền tải lớn, nhưng PHP và IIS cũng đã được cải thiện liên tục nên việc này không còn đáng phải bận
tâm.
APACHE là một kiểu mẫu Web Server rất phổ biến. Giống như Linux, PHP, MySQL nó là một dự án
nguồn mở. Không có gì ngạc nhiên khi người ta thấy Apache được hỗ trợ rất tốt trên môi trường Unix,
nhưng chỉ khá tốt trong Windows. Apache tận dụng được tính năng của third-party. Bởi vì đây là nguồn
mở nên bất kỳ ai có khả năng đều có thể viết chương trình mở rộng tính năng của Apache. PHP hoạt
động với tư cách là một phần mở rộng của Apache, và người ta gọi là một module của Apache. Apache
có tính ổn định và tốc độ đáng phải nói. Tuy nhiên, cũng có một số sự phàn nàn về nó là không hỗ trợ
công cụ đồ hoạ trực quan, điều có thể giúp người ta làm việc một cách dễ dàng hơn. Bạn phải thực hiện
các thay đổi đối với Apache bằng cách sử dụng dòng lệnh, hoặc sử các tập tin text trong folder chương
trình Apache. Nếu lần đầu đến với Apache thì bạn sẽ gặp một chút lạ lẫm. Mặc dù Apache chỉ làm việc
tốt trên Unix, nhưng cũng có những phiên bản chạy tốt trên hệ Windows. Không một ai, kể cả các nhà
phát triển Apache đề nghị rằng Apache nên được chạy trên một server Windows bận rộn. Nếu bạn quyết
định chọn HĐH Windows cho server thì bạn nên sử dụng IIS. Nếu bạn thử nghiệm ứng dụng trên
Windows và sau đó đem upload và chạy trên Unix/Apache của nhà cung cấp host thì cũng không hề hấn
gì, ứng dụng của bạn vẫn chạy ngon lành.

II. Ngôn ngữ PHP
PHP tốc độ nhanh, dễ sử dụng vì 3 lý do sau khi so ánh tốc độ giữa các ngôn ngữ lập trình Web. Thứ
nhất, ứng dụng viết bằng C chạy nhanh nhất. Thứ hai, công việc lập trình C khá là phức tạp, và sẽ ngốn
nhiều thời gian hơn. Thứ ba, việc so sánh giữa các ngôn ngữ là một điều khó khăn. Có thể nói rằng PHP
cũng nhanh như các ngôn ngữ khác.
Chắn chắn bạn sẽ chọn loại tiện dụng nhất? Bạn sẽ cảm thấy rằng PHP có đầy đủ các đặc tính như khả
năng, cấu trúc và dễ sử dụng. Xin nói thêm cú pháp PHP tuyệt hơn ASP hay JSP. PHP cung cấp các tính
năng mạnh mẽ để thực hiện ứng dụng Web một cách nhanh chóng.
PHP cho phép chạy trên nhiều hệ điều hành. Như đã trình bày ở phần kiến trúc web, PHP có thể chạy trên
WindowsNT/2000/2003 và Unix với sự hỗ trợ của IIS và Apache. Nhưng ngoài ra nó có thể chạy trên
một số các platform khác như Netscape, Roxen, hay một vài thứ khác. Như chúng ta biết ASP có thể
chạy trên Unix, ColdFusion có thể chạy trên Solaris và Linux, JSP có thể chạy trên khá nhiều loại

platform. Đối với PHP, nó có thể chạy tốt trên những platform hỗ trợ các chủng loại trên.
PHP cho phép truy cập bất kỳ loại CSDL nào. Ứng dụng của bạn dự định sẽ truy cập những loại dữ liệu
dịch vụ nào? LDAP, IMAP mail server, DB2, hay XML parser hay WDDX.. Bất kể bạn cần đến thứ gì
thì PHP cũng sẵn sàng hỗ trợ thông qua các hàm được xây dựng sẵn nó sẽ làm công việc của bạn trở nên
rất dễ dàng và tiện lợi. sẽ rõ.
Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

3


PHP Luôn được cải tiến & cập nhật. Nếu như bạn cảm thấy bỡ ngỡ đối với việc phát triển nguồn mở, bạn
có lẽ sẽ ngạc nhiên đối với chất lượng của loại phần mềm này. Có hàng ngàn những chuyên gia lập trình
xuất sắc đợi sẵn và họ sẵn sàng bỏ thời gian ra để tạo hững phần mềm tuyệt vời và hầu như miễn phí.
Đối với ngôn ngữ thịnh hành như PHP thì ắt hẳn là các rất nhiều các nhà lập trình đang thực hiện phát
triển nó hằng ngày. Sự thật có một việc rất ấn tượng là nếu như bạn có một sự cố kỹ thuật, bạn có thể gởi
email đến một nhà phát triển PHP các chi tiết sự cố đó. Chỉ trong vòng vài giờ bạn sẽ nhận được sự trả lời
thoả đáng. Khi PHP được phổ biến, nó đã trở thành một hiện tượng của ngôn ngữ lập trình. Nó giúp cho
việc bổ sung số lượng lớn các hàm chức năng một cách dễ dàng. Nếu như ngôn ngữ đã có sẵn nhiều hàm
đặc thù cho công việc thì bạn sẽ đỡ tốn công hơn cho việc lập trình của mình.
PHP được hướng dẫn kỹ thuật bất cứ lúc nào. Hầu hết các ngôn ngữ đều hỗ trợ active mailing list (hiểu
nôm na là danh sách mail những thành viên trực chiến hỗ trợ kỹ thuật) và các development site (trang
web hỗ trợ giải quyết kỹ thuật). PHP cũng không ngoại lệ. Nếu bạn gặp phải sự cố - gặp những lỗi trong
chương trình và không tìm ra cách khắc phục - sẽ có hàng trăm người có tên trong danh sách mail luôn
sẵn lòng kiểm tra và khắc phục sự cố cho bạn. Bộ nguồn mở PHP thật sự đã tạo ra một tình cảm của cả
cộng đồng. Khi bạn gặp phải khó khăn đối với nó thì lúc nào cũng có những đồng môn chia sẻ nỗi lòng
đó và giúp bạn khắc phục nhằm đem lại niềm vui cho bạn.
PHP hoàn toàn miễn phí. Bạn không ngại gì về vấn đề bản quyền khi bạn sắm một máy vi tính và cài lên
đó những phần mềm như Linux, Apache, PHP vì tất cả đều miễn phí.

1. Kiến trúc họat động cơ bản của DYNAMIC WEB

Kiến trúc căn bản nhất để trang Dynamic Web hoạt động được là nó phải làm việc trên mô hình
client/server. Nôm na là mỗi thứ client hay server đều đảm đương một chức năng riêng để hoàn thành
công việc chung đó là cho ra một trang Web động.
Các bạn có lẽ đã quen thuộc với chương trình WinWord để soạn văn bản, nó có thể hoạt động độc lập
trên bất kỳ máy tính nào chẳng cần quan tâm tới cái gì là client hay cái gì là server. Ứng dụng Web thì
khác hẳn, phải có một mô hình server có thể là một máy tính làm server thôi, nhằm tập trung hoá việc xử
lý dữ liệu. Còn các client, còn được hiểu nôm na là máy tính của người sử dụng phải được nối mạng với
server, giả sử các máy này truy cập vào một Website chẳng hạn, thì có nghĩa họ đã truy cập vào server,
sau đó lấy dữ liệu từ server về thể hiện lên máy mình. Cùng một lúc có thể có hàng trăm người (client)
truy cập vào cùng một Website được xử lý tập trung trên server, tương tự như một đám trẻ xúm nhau
giành phần của mình từ một cái bánh.

a. Client
Các ứng dụng mà bạn phát triểân trên nền MySQL và PHP sử dụng tính năng single client đó là trình
duyệt Web. Tuy nhiên, không phải đây chỉ là ngôn ngữ duy nhất để phát triển ứng dụng Web. Đối với
những ứng dụng phức tạp đòi hỏi multi-client hoặc cần các tính năng bảo trì (chúng ta sẽ bàn tính năng
này sau), thì ứng dụng Java applet sẽ hữu dụng cho việc này. Chỉ trừ trường hợp bạn cần sử dụng ứng
dụng thời gian thực như ứng dụng chat chẳng hạn, thì bạn Java Applet mới cần thiết. Ở đây chúng ta
không bàn tới lập ứng dụng cho chuyện tán gẫu mà chỉ tập trung vào ứng dụng duyệt Web nên không
đụng chạm gì tới Java Applet cả.
Như bạn đã biết ngôn ngữ khởi thuỷ cho việc duyệt Web là HTML. HTML cung cấp hàng tá những thẻ
lệnh (Tag) cho phép thể hiện trang Web theo nhiều kiểu cách khác nhau. Nếu bạn chưa có kiến thức cơ sở
về HTML thì có thể chạy ra ngoài mua ngay một quyển sách hoặc download trên internet xuống các bài
học hướng dẫn. Bạn không nên bỏ ra quá nhiều thời gian để học về HTML. Ngoài HTML ra các trình
duyệt Web còn cho phép các add-in hỗ trợ nhiều thứ khác như RealPlayer, Flash, Shockwave, hoặc hỗ trợ
về Javascript hoặc XML. Nhưng ở đây chúng tôi chỉ tập trung trên những gì cần thiết cho sự hội nhập của
bạn – đó là HTML.
Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

4



b. Server
Hầu hết các ứng dựng Web đều hoạt động tập trung trên Server. Một ứng dụng đặc trưng gọi là Web
Server sẽ đảm trách việc giao tiếp với các trình duyệt. Một Cơ sở dữ liệu (CSDL) trên Server sẽ lưu trữ
tất cả những thông tin đáp ứng yêu cầu cho công việc của ứng dụng Web. Kế tiếp, bạn cần phải có một
ngôn ngữ làm vai trò "chú bé liên lạc" giữa Web Server và CSDL trên server. Ngôn ngữ này cũng thực
hiện các công việc xử lý thông tin đến và đi từ Web Server.

c. MIDDLE WARE
Ngôn ngữ lập trình Web (PHP, ASP, JSP).
DATABASE SERVER (MySQL, SQLserver..).
WEB SERVER (Apache, IIS)
INTERNET WEB BROWSER(Internet Explorer, Netscape)
Và dĩ nhiên là các thứ này sẽ chẳng hoạt động được nếu như không chạy trên một Hệ Điều Hành (HĐH).
Các thứ như Web Server, Ngôn ngữ lập trình, CSDL phải hoạt động tốt trên một HĐH nào đó.

III. PHP và Webserver APACHE
1. Cài đặt PHP và Apache
Bạn Dbl click vào file easyphp1-8_setup.exe để tiến hành cài đặt PHP và Webserver Apache, cửa sổ đầu
tiên xuất hiện như hình dưới :

Bạn chọn English, click OK, cửa sổ kế tiếp xuất hiện như hình dưới :

Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

5


Click phím next , cửa sổ kế tiếp xuất hiện như hình dưới :


Đánh dấu check vào mục I Accept the agreement, click phím next cửa sổ kế tiếp xuất hiện như hình
dưới :

Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

6


Click phím next, cửa sổ kế tiếp xuất hiện như hình dưới :

Click phím next cửa sổ kế tiếp xuất hiện như hình dưới :

Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

7


Chọn YES, click phím next cửa sổ kế tiếp xuất hiện như hình dưới :

Click phím next cửa sổ kế tiếp xuất hiện như hình dưới :

Click chọn nút Install, click phím next cửa sổ kế tiếp xuất hiện như hình dưới :

Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

8


Đợi chương trỉnh cài đặt xong, cửa sổ kế tiếp xuất hiện như hình dưới :


Chọn Finish để hòan tất chuơng trình cài đặt.
Để khởi động chương trình ban vào click nút Start – Program – EasyPHP – EasePHP, cửa sổ sau xuất
hiện như hình dưới :

Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

9


Bạn click vào nút Apache chọn Start.

2. Cấu hình web server APACHE
Sau khi bạn start Webserver , bạn kiểm tra trên thư mục cài đặt có 1 thư mục WWW , đây là thư mục mà
sau này sẽ chứa tòan bộ ứng dụng web của bạn.
Trên taskbar bạn sẽ thấy 1 hình chữ E màu đen. Click chuột fải vào chữ E này chọn Configuration Apache. Bạn sẽ thấy 1 file có tên httpd.conf xuất hiện. Bạn tìm đến mục Listen và thêm vào dòng lệnh
sau : Listen [địa chỉ ip của webserver]:80 rồi lưu file này lại.

Lệnh này dùng để cho phép các client trong mạng có thể truy xuất vào webserver để duyệt trang web.
Bạn tạo thử 1 trang index.php có nội dung bất kỳ và lưu vào trong thư mục WWW. Client có thể xem
trang này thông qua đị chỉ internet sau : http://[địa chỉ ip WebServer]/index,php. Nếu trên máy
Webserver thì bạn có thể truy xuất qua địa chỉ http://localhost/index.php.

IV.

Nhập môn lập trình php

1. Code PHP trong HTML
a. Nhúng code PHP vào trong web
Code PHP trong HTML nằm trong cú pháp sau : <?php …………..?>

<body>
Vi du trang PHP
echo “Welcome to my site”;
?>

b. Thẻ PHP
Có 4 lọai thẻ PHP khác nhau mà ta có thể sử dụng khi thiết kế trang web
• Thẻ Short : là thẻ mặc định trong PHP :
<? Echo “Hello World”; ?>
Để sử dụng thẻ này bạn phải khai báo trong file PHP.INI lệnh sau : short_open_tag=On
Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

10







Thẻ định dạng XML : là thẻ có thể sử dụng với văn bản XML :
<?php Echo “Hello World”; ?>
Thẻ Script : Trong trừong hợp sử dụng PHP như 1 script như javascript hay vbscript ta dùng cú
pháp sau :
<script language=’php’>
echo “Hello World”;
</script>
Thẻ ASP : trong trường hợp khai báo PHP như 1 phần trong trang ASP thì dùng cú pháp :

<% echo “Hello World”; %>
Để sử dụng thẻ này bạn phải khai báo trong file PHP.INI lệnh sau : asp_tags=On

c. Sử dụng dấu ;
Sau 1 dòng lệnh PHP luôn kết thúc bằng dấu ; vì vậy các lệnh sau đều hợp lệ :
echo “ Hello!”;
echo “Goodbye”; Hay
echo “ Hello!”; echo “Goodbye”;

d. Ghi chú trong php
/*



Để ghi chú 1 nhóm lệnh ta dùng cú pháp /*…..*/
echo “hello world”;
echo “GoodBye”;

*/



Để ghi chú 1 dòng lệnh thì dùng dấu // hay #
// echo “hello world”;
echo “GoodBye”; # đây là chú thích

2. Sử dụng Biến
a. Biến Form
Khi 1 form gửi ra trị từ dưới client về sever ta có thể lấy ra giá trị của các biến này theo cách gửi tương
ứng

• Gửi bằng phưong thức POST :
echo “UserName là : “ . $HTTP_POST_VARS[“txtUser”];
echo “Password là : “ . $HTTP_POST_VARS[“txtPass”];
• Gửi bằng phưong thức GET :
echo “UserName là : “ . $HTTP_GET_VARS[“txtUser”];
echo “Password là : “ . $HTTP_GET_VARS[“txtPass”];
Bạn có thể viết tắt 2 trường hợp trên như sau với điều kiện khai báo thông số :
register_globals=On trong PHP.INI
echo “UserName là : “ . $txtUser;
echo “Password là : “ . $txtPass;
Dấu . chính là tóan tử ghép chuỗi bạn có thể viết lại theo cách sau PHP vẫn cho kết quả tương tự
vì PHP luôn hiểu sau dấu $ là 1 biến cho dù trong chuỗi:
echo “UserName là : $txtUser”;
echo “UserName là : $txtPass”;

b. Khai báo biến
1 biến khi khai sinh bạn đặt cho biến 1 tên. Tên biến không khỏang trắng, chỉ dùng các ký tự a-z, 0-9 và
dấu _. PHP phân biệt chữ thường và chữ hoa. PHP không yêu cầu bạn khai báo biến trước khi sử dụng
chúng. Ta nên khai báo biến và gán chó chúng 1 giá trị bạn đầu
$soluong=300;
Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

11


$dongia=200;
$tongtien=$soluong*$dongia;
echo “Thành tiền : $tongtien”;
?>


c. Kiểu dữ liệu của biến
PHP hỗ trợ 5 kiểu dữ liệu sau :
• Integer : Sử dụng hầu hết cho giá trị dữ liệu kiểu số .
• Double : Sử dụng hầu hết cho giá trị dữ liệu kiểu số thực
• String : Sử dụng hầu hết cho giá trị dữ liệu kiểu chuỗi
• Array: Sử dụng hầu hết cho giá trị dữ liệu là mảng có phần tử cùng kiểu dữ liệu
• Object : Sử dụng hầu hết cho giá trị dữ liệu là đối tượng của lớp
Bạn có thể chuyển đổi kiểu dữ liệu như ví dụ sau :
$soluong=300;
$dongia=200;
$thue=(integer)($soluong*$dongia)*10/100;
$tongtien=(double)($soluong*$dongia+$thue);
echo “Thành tiền : $tongtien”;
?>

d. Bíên dạng biến thiên
Biến dạng biến thiên là 1 loại biến đặc biệt, loại biến này cung cấp cho bạn cách tự động thay đổi tên của
biến.
$qty="soluong";
echo "qty: ".$qty."
";
$$qty=40;
echo "soluong: ".$soluong;
?>
Kết quả là biến soluong = 40

e. Biến hằng trong PHP
Biến hằng trong PHP phải đượ khai báo bằng chữ hoa bằng từ khóa define

define("RATE",0.3);
$qty=10;
$price=40;
echo "RATE: ".RATE."
";
echo "Total: ".$qty*$price*RATE;
?>

f. Tầm họat động của biến
PHP cung cấp 2 loại vùng họat động cho biến :
• Biến cấp cục bộ là biến khai báo bên trong 1 function biến được khai sinh khi function được gọi
và chết đi khi function kết thúc, biến trong function nào thì chì được sử dụng trong function đó
mà thôi
• Biến cấp script hay biến tòan cục là biến khai báo trong 1 script php bên ngoài các function, nó có
thể được sử dụng trong tất cả các function của PHP trên trang web tương ứng.

g. Biến mảng
Biến mảng là biến dữ liệu lưu trự tập hợp gồm nhiều biến , mỗi biến được xem như là 1 phần tử trong
mảng chứa 1 giá trị bất kỳ.
Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

12




Khai báo và gán giá trị có 1 mảng
//Declare and initial value
$product=array("Softdrink","Bear","Wine");

//Declare and assign value
$Items=array(2);
$Items[0]=1;
$Items[1]=2;
?>
• Sử dụng vòng lặp for để truy cấp biến mảng: bạn sử dụng vòng lặp này khi biết trước được số
phần tử của mảng.
$n=10;
$Items=array($n);
for ($i=0;$i<$n;$i++)
$Items[$i]=$i*2;
for ($i=0;$i<$n;$i++)
echo "element $i : ".$Items[$i]."
";
?>
• Sử dụng vòng lặp while để truy cấp biến mảng: bạn sử dụng vòng lặp này khi không biết trước
được số phần tử của mảng là bao nhiêu . Ta dùng hàm each kết hợp với vòng lặp while
$n=10;
$Items=array($n);
for ($i=0;$i<$n;$i++)
$Items[$i]=$i*2;
echo "No
Value
";
while ($i=each($Items))
{
echo $i["key"];
echo " ";
echo $i["value"]."
";
}

?>
Trong đó khóa key là vị trí của phần tử mảng, value là giá trị của phần tử mảng tương ứng với
phưuơng thức thứ key. Ngòai ra ta cũng có thể dùng hàm list để tách phần tử mảng vào biến.. Trong
trường hợp biến mảng items có 2 cột dữ liệu là key và value, ta có thể đọc từng phần tử vào 2 biến
tương ứng như sau :
$n=10;
$Items=array($n);
for ($i=0;$i<$n;$i++)
$Items[$i]=$i*2;
echo "Key Value
";
while (list($k,$v)=each($Items))
{
echo $k;
echo "       ";
echo $v."
";
}
?>
Trong đó biến $k lấy giá trị ví trí của phần tử, biến $v là giá trị của phần tử thứ $k.


Mảng 2 chiều : khai bao và duyệt các phần tử của mảng 2 chiều

Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

13







$products=array(array("TIR","Tires", 100),array("COR","Concord",
1000),array("BOE","Boeing", 5000));
for ($row=0;$row<3;$row++)
{
for ($col=0;$col<3;$col++)
{
echo "\t|\t".$products[$row][$col];
}
echo "
";
}
$products[0][0]="A";
$products[0][1]="A1";
$products[0][2]=10;
$products[1][0]="B";
$products[1][1]="B1";
$products[1][2]=20;
$products[2][0]="C";
$products[2][1]="C1";
$products[2][2]=30;
for ($row=0;$row<3;$row++)
{
for ($col=0;$col<3;$col++)
{
echo "\t|\t".$products[$row][$col];
}
echo "
";
}

?>
Sắp xếp mảng 1 chiều : sau khi khao báo và gán giá trị bạn nên sắp xếp dữ liệu trong mảng trước
khi in ra bằng hàm sort().
$products=array("Oil","Tires", "Van");
sort($products);
for ($row=0;$row<3;$row++)
{
echo "\t|\t".$products[$row];
echo "|
";
}
?>
Sắp xếp dữ liệu 2 cột : trong trường hợp mảng lưu trữ 2 cột ta dùng hàm asort() để sắp xếp dữ liệu
theo cột nhất định nào đó :
$products=array("Oil"=>100,"Tires"=>10, "Van"=>5);
asort($products);
while ($row=each($products))
{
echo $row["key"];
echo "\t\t";
echo $row["value"];
echo "
";
}
?>

Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

14



h. Chuyển đổi biến



Hàm gettype(biến) : trả về 1 chuỗi cho biết biến đó thuộc kiểu dữ liệu nào. Nếu không xác định
được thì trả về chuỗi “unknown type”.
Hàm settype(biến, kiểu dữ liệu) : ép biến đó trở về kiểu dữ liệu tương ứng
$a=56;
echo "dattype of a:".gettype($a)."
";
settype($a,"double");
echo "now, dattype of a:".gettype($a)."
";
?>

i. Kiểm tra kiểu dữ liệu biến










is_array(biến) : Kiểm tra biến là kiểu dữ liệu array hay không.
is_double(biến) : Kiểm tra biến là kiểu dữ liệu double hay không.
is_float(biến) : Kiểm tra biến là kiểu dữ liệu double hay không.
is_real(biến) : Kiểm tra biến là kiểu dữ liệu real hay không.

is_long(biến) : Kiểm tra biến là kiểu dữ liệu long hay không.
is_int(biến) : Kiểm tra biến là kiểu dữ liệu int hay không.
is_integer(biến) : Kiểm tra biến là kiểu dữ liệu integer hay không.
is_string(biến) : Kiểm tra biến là kiểu dữ liệu string hay không.
is_object(biến) : Kiểm tra biến là kiểu dữ liệu object hay không.

3. Tóan tử trong PHP
a. Tóan tử số học
Tóan tử
+
*
/
%

Tên
Cộng
Trừ
Nhân
Chia
Modulo

Ví dụ
$a+$b;
$a-$b;
$a*$b;
$a/$b;
$a%$b

b. Tóan tử ghép chuỗi
Dấu chấm “.” Dùng để làm tóan tử ghép chuỗi

$a="HoaSen";
$b="University";
$b =$b.".com";
$a=$a.$b;
echo $a;
?>
hay
$a="Recruit";
$b="Vietnam";
$a=$a.$b;
echo $a.($c=".com");
?>

c. Tóan tử kết hợp
Tóan tử
+=
++
-=

Sử dụng
$a+ =$b
$a+ +
$a- =$b

Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

Tương tự
$a=$a+$b;

$a=$a+1;
$a=$a-$b;
15


-*=
/=
%=
.=

$a - $a* =$b
$a/ =$b
$a% =$b
$a. =$b

$a=$a-1;
$a=$a*$b;
$a=$a/$b;
$a=$a%$b;
$a=$a.$b;

Tóan tử
==
===
! = hay <>
<
>
<=
>=


Sử dụng
$a= =$b
$a= = =$b
$a! =$b hay $a<>$b
$a<$b
$a>$b
$a< =$b
$a> =$b

Ý nghĩa
$a bằng $b
$a bằng và cùng kiểu dữ liệu $b
$a khác $b
$a nhỏ hơn $b
$a lớn hơn $b
$a lớn hơn hay bằng $b
$a nhỏ hơn hay bằng $b

Tóan tử
!
&& hay and

Sử dụng
!$a
$a>5 && $b<8 hay
$a>5 and $b<8

|| hay or

$a! =$b hay $a<>$b


Ý nghĩa
Phủ định
Trả về true nếu cả 2 điều kiện
true ngượ lại trả về false
Trả về true nếu 1 trong 2 điều
kiện true hay cả hai điều kiuện
true ngược lại trả về false

d. Tóan tử So sánh

e. Tóan tử logic

f. Toán tử ?
Tóan tử ? thay thế cho phát biểu điều khiển If và else với 1 câu lệnh bên trong. Ví dụ
$a=10;
$b=$a+10;
$c=0;
if($a>10)
$c=$a;
else
$c=$b;
echo "c:$c";
?>
Ta có thể thay thể cấu trúc if else trên bằng tóan tử ? như sau
$a=10;
$b=$a+10;
$c=($a>10)?$a:$b;

echo "c:$c";
?>

g. Tóan tử error
Trong trường hợp biếu thức hay phép tóan phát sinh lỗi trên trang web, nếu bạn muốn không xuất ra
thông báo lỗi này thì bạn dùng tóan tử error là dấu @
$a=10;
$c=0;
$b=$a/$c;
echo "b:".$b;
Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

16


?>
Ví dụ trên sẽ xuất ra lỗi : Warning : Division by zero in …BẠn muốn không hiện lỗi này thì sửa
lại như sau :
$a=10;
$c=0;
$b=@($a/$c);
echo "b:".$b;
?>

4. Cấu trúc ngôn ngữ
a. Phát biểu if
Phát biểu if với 1 điều kiện, nếu điều kiện là true thì khôi lệnh trong phát biểu if được thực thi, điều kiện
phải được khai báo trong cặp dấu () như sau :

$a=10;
$b=8;
if($a>$b)
echo $a+$b
?>
Nếu khối lệnh chỉ có 1 dòng thì bạn áp dụng như ví dụ trên, tuynhiên khối lệnh mà từ 2 dòng trở lên bạn
phải đặt trong cặp dấu { } như ví dụ sau
$a=10;
$b=8;
if($a>$b)
{
echo $a . “
”;
echo $b
}
?>

b. Phát biểu else
Phát biểu else luôn là trường hợp của phát biểu if với 1 điều kiện, nếu điều kiện là true thì khôi lệnh trong
phát biểu if được thực thi còn nếu ngược lại thì nếu điều kiện là false thì khối lệnh trong phát biểu else
được thực thi.
$a=10;
$b=8;
if($a>$b)
echo $a + $b
else
echo $a - $b
?>

Tương tụ trong trường hợp phát biểu if nếu trong khối lệnh của phát biểu else có nhiều hôn 1 dòng lệnh
thì bạn phải đặt khối lệnh này trong cặp dấu {}
$a=10;
$b=8;
if($a>$b)
{
echo $a . “
”;
echo $b;
}
17
Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP


else
{
$a++;
echo $a;
}
?>

c. Phát biểu elseif
Trong trường hợp có nhiều hơn 2 điều kiện tùy chọn thì bạn phải chọn phát biểu elseif
$soluong=10;
if($soluong<10) $giamgia=10;
elseif ($soluong>=10 && $soluong<=20) $giamgia=20;
elseif ($soluong>20 && $soluong<=30) $giamgia=30;
elseif ($soluong>30 && $soluong<=40) $giamgia=40;
else $giamgia=0;

?>

d. Phát biểu switch
Là phát biểu cho phép lựa chọn 1 trong nhiều giá trị cho trước
$soluong=10;
switch ($soluong)
{
Case 10;
$giamgia =100;
break;
Case 20;
$giamgia =50;
break;
Case 30;
$giamgia =25;
break;
default :
$giamgia =0;
}
?>
Nếu đúng điều kiện case bạn cần khai báo phát biểu break nhằm thóat khỏi phát biểu switch, trong trường
hợp bạn không khai báo break trong mỗi phát biểu case thì PHP vẫn so sánh tiếp các điều kiện trong các
case kế tiếp. Nếu các điều kiện case không thỏa thì PHP sẽ thực thi khối lệnh trong phát biểu default.

e. Phát biểu vòng lặp While
Cú pháp :

while(điều kiện)
{

Khối lệnh;
}
Phát biểu vòng lặp này cho phép thực thi khối lệnh bên trong cho đến khi điều kiện của while là true.
$qtty=5;
$price=5000;
while($qtty>0)
{
echo "<tr><td>".$qtty."</td><td>".$qtty*$price."</td></tr>";
$qtty--;
}
Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

18


?>

f. Phát biểu vòng lặp do….while
Cú pháp :

do
{
Khối lệnh;

}
while(điều kiện)
Phát biểu vòng lặp này cho phép thực thi khối lệnh bên trong cho đến khi điều kiện của do…while là
true. Phát biểu này sẽ lặp ít nhất 1 lần

$qtty=5;
$price=5000;
do
{
echo "<tr><td>".$qtty."</td><td>".$qtty*$price."</td></tr>";
$qtty--;
}
while($qtty>0)
?>

g. Phát biểu vòng lặp for
Cú pháp :

for(giá trị đầu,điều kiện,giá trị lặp)
{
Khối lệnh;
}
Vòng lặp này cho phép bạn thực thi khối lệnh theo số lần lặp qui định trước.
$qtty=5;
$price=5000;
for($rate=1;$rate<=$qtty;$rate++)
{
echo "<tr><td>".$qtty*$rate."</td><td>";
echo $qtty*$price."</td></tr>";
}
?>

h. Thoát khỏi cấu trúc
Để thóat khỏi vòng lặp hay phát biểu điều khiển nào đó bạn dùng từ khóa exit , khi php gặp lệnh này nó

sẽ thót ngay ra khỏi phát biểu mà không cần biểu điều kiện vẫn còn thỏa trong vòng lặp hay so sánh.
$qtty=5;
$price=5000;
while($qtty>0)
{
echo "<tr><td>".$qtty."</td><td>";
echo $qtty*$price."</td></tr>";
$qtty--;
if ($qtty==3)
exit;
}
?>

Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

19


5. Tạo hàm trong PHP
a. Khai báo hàm
Cú pháp : function tên_hàm()
{
Khối lệnh
}
Ví dụ :
function chao()
{
echo “Here is my function
” ;
echo “Have a good day” ;

}
Hay
function tinhtoan($x)
{
$a=10;
$x=$a**;
Return $x;
}
Chú ý là bạn không được dùng những từ khóa của php để đặt tên cho hàm. Tên hàm đặt giống như đặt tên
biến: không khỏang trắng, chỉ dùng ky tự a-z,0-9 và dấu gạch duới.

b. Gọi hàm
Gọi hàm do người dùng định nghĩa cũng giống như sử dụng hàm có sẵn trong PHP ví dụ như ta gọi 2
hàm trên như sau :
Chao()
$giatri=tinhtoan(20)

c. Truyền tham số
Hầu hết các hàm thường sử dụng 1 vài tham số đượ truyền từ bên ngoài vào, tham số truyền cvào không
định nghĩa kiểu dữ liệu mà tùy thuộc vào kiểu dữ liệu mà tham số đó nhận : tham số có 2 dạng 1 tham số
bắt buộc và tham số tùy chọn. Ví dụ sau sử dụng tham số bắt buộc là tham số mà khi gọi hàm bạn phải
truyền vào cho nó nếu không có tham số truyền vào php sẽ báo lỗi
function create_table($data)
{
echo "<table border=1>";
reset($data);
$value=current($data);
while($value)
{

echo "<tr><td>$value</td></tr>\n";
$value=next($data);
}
echo "</table>";
}
?>
<html>
<head>
<title>User Defined Functions</title>
</head>
<body>
Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

20


$myarray=array("Line one","Line two","Line three.");
create_table($myarray);
?>
</body>
</html>
Ví dụ sau sử dụng tham số bắt buộc và tùy chọn (là tham số mà khi gọi hàm bạn có thể truyền vào
hay không đều được.
function create_tables($data, $border=0,$cellpading=4,$cellspacing=4)
{
echo "echo "cellspacing=$cellspacing>";
reset($data);

$value=current($data);
while($value)
{
echo "<tr><td>$value</td></tr>\n";
$value=next($data);
}
echo "</table>";
}
?>
<html>
<head>
<title>User Defined Functions
with optional parameters</title>
</head>
<body>
$myarray=array("Line one","Line two","Line three.");
echo "<table><tr><td>";
create_tables($myarray);
echo "</td><td>";
create_tables($myarray,1,2,3);
echo "</td></tr></table>";
?>
</body>
</html>

d. Hàm có giá trị trả về
Nếu bạn khai báo hàm có giá trị trả về, bạn có thể sử dụng phát biểu return ứng với giá trị trả về cuối
hàm, nếu bên dưới phát biểu return còn 1 số câu lệnh khác, những câu lệnh này sẽ không được dịch ie khi
gặp lệnh return coi như hàm chấm dứt.

function ReturnNo($data,$i)
{
$total=0;
for($j=0;$j<$i;$j++)
{
$total+=$data[$j];
}
return $total;
}
Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

21


?>
<html>
<head>
<title>User Defined Return Functions
with optional parameters</title>
</head>
<body>
$myarray=array(1,2,3,4);
echo "ReturnNo=".ReturnNo($myarray,4);
?>
</body>
</html>

e. Tham biến

Khi truyền 1 giá trị cho 1 hàm thông qua 1 biến nếu bạnmuốn lấy giá trị trả về cho biến đó thì bạn dùng
kỳ thuất tham biến bằng các thêm tóan tử & vào biến trên hàm nhận giá trị tới.
function increament(&$value,$amount=10)
{
$value=$value + $amount;
}
?>
<html>
<head>
<title>ByValue in Functions</title>
</head>
<body>
$value=10;
echo "Original value: ".$value;
increament($value);
echo "
";
echo "Last value: ".$value;
?>
</body>
</html>

6. Hàm thư viện
a. Hàm sử lý số


abs(số) : lấy trị tuyệt đối
echo $abs = abs(-4.2)."
"; // $abs = 4.2 (double/float)
echo $abs2 = abs(5)."
"; // $abs2 = 5 (integer)

echo $abs3 = abs(-5)."
"; // $abs3 = 5 (integer)



sqprt(trị số) : Lấy căn bậc 2
echo sqrt(9)."
"; // 3
echo sqrt(10)."
"; // 3.16227766 ..



fmod(số chia, số bị chia) : chia lấy phần dư
$x = 5;
$y = 3;
echo $r = fmod($x, $y) ."
";

Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

22




min(danh sách trị số) : lấy giá trị nhỏ nhất trong danh sách
echo min(2, 3, 1, 6, 7)."
"; // 1
echo min(array(2, 4, 5))."
"; // 2



max(danh sách trị số) : lấy giá trị lớn nhất trong danh sách
echo max(1, 3, 5, 6, 7)."
"; // 7

echo max(array(2, 4, 5))."
"; // 5



floor(trị số) :làm tròn xuống
echo floor(4.3)."
"; // 4
echo floor(9.999)."
"; // 9
echo floor(-3.14)."
"; // -4



ceil(trị số): làm tròn lên
echo ceil(4.3)."
"; // 5
echo ceil(9.999)."
"; // 10
echo ceil(-3.14)."
"; // -3



round(trị số,n) : làm tròn đến n số lẻ: n là số dương làm tròn phần thập phân, n là số âm làm tròn
phần nguyên.
echo round(3.4)."
";
// 3
echo round(3.5)."
";
// 4
echo round(3.6)."
";
// 4
echo round(3.6, 0)."
";
// 4
echo round(1.95583, 2)."
"; // 1.96
echo round(1241757, -3)."
"; // 1242000

echo round(5.045, 2)."
"; // 5.05
echo round(5.055, 2)."
"; // 5.06



coutn(danh sách) : đếm số phần tử có giá trị
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
echo $result = count($a)."
";
// $result == 3
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
echo $result = count($b)."
";
// $result == 3



rand() : cho kết quả là 1 con số ngẫu nhiên
echo rand()."
";
echo rand()."
";
echo rand(5, 15); // cho so ngau nhieu tu 5- 15

b. Hàm sử lý chuỗi.
• Ltrim(chuỗi): cắt bỏ các khỏang trắng bên trái chuỗi.
• Chop(chuỗi): cắt bỏ các khỏang trắng bên phải chuỗi.
• Trim(Chuỗi): cắt bỏ các khỏang trắng bên phải và bên trái chuỗi.
$total=1000

echo $total . ltrim(" Wellcome") ;
Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

23


echo chop("Wellcome
").$total ;
echo $total. trim("
Wellcome
").$total ;
?>
• printf(chuỗi): in ra 1 chuỗi trên trang web với định dạng cho trước
Lọai
Diễn giải
b
Biên dịch như số nguyên và in dạng binary
c
Biên dịch như số nguyên và in dạng character
d
Biên dịch như số nguyên và in dạng decimal
f
Biên dịch như số thực double và in dạng float
o
Biên dịch như số nguyên và in dạng octal
s
Biên dịch như chuỗi và in dạng string
x
Biên dịch như số nguyên và in dạng hexadecimal ký tự từ a-f
X

Biên dịch như số nguyên và in dạng hexadecimal ký tự từ A-F
$total=12.55;
echo "Total amount of order: $total
";
printf("Total amount of order làm tròn 1 số lẻ : %.1f", $total);
echo "
";
printf("Total amount of order làm tròn 2 số lẻ: %.2f", $total);
echo "
";
?>
• strupper(chuổi) : biến đỗi thành chữ hoa
• strlower(chuỗi) : biến đổi thành chữ thường
• ucfirst(chuỗi) : biến đổi ký tự đầu của câu viết hoa
• ucword(chuỗi) : biến đổi ký tự đầu của từ viết hoa
• Định dạng chuỗi : khi trong chuỗi của bạn muốn lưu ký tự đặc biết như dấu nháy’ dấu \ thì bạn
phải thêm vào trướ các dấu này 1 dấu \.Hàm AddSlashes(chuỗi) sẽ tự động tìm những ký tự lạ
trên để thêm vào dấu \. Ngược lại hàm StripSlashes(chuỗi) sẽ lọai trừ các chuỗi đã có sẵn dấu \ ra
khỏi chuỗi.
$chuoi=Addslashes("wel'lcom?e to \my site");
echo $chuoi;
echo "
";
$chuoi=StripSlashes("wel'lcom?e to \my site");
echo $chuoi;
?>
• Explode(chuỗi xác định,chuỗi cần tách) : tách 1 chuỗi thành nhiều chuỗi con lưu trữ trong 1
mảng.
• implode(chuỗi xác định,mảng chứa chuỗi cần nhập) : Nhập 1 mảng chứa các chuỗi con thành 1
chuỗi.
$chuoitach="";

$mail_array=explode("@",$chuoitach);
echo "ID : $mail_array[0] - Domain : $mail_array[1]" ;
echo "
";
$chuoinhap=implode("@",$mail_array);
echo $chuoinhap;


?>
strtok(chuỗi tách,chuổi phân tách) : Tách chuỗi con đầu tiên tại vị trí chuỗi phân tách.
$chuoi="Wellcome to my site";
echo "
";
$giatri=strtok($chuoi," ");

Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

24


echo $giatri."
";
while($giatri!="")
{
$giatri=strtok(" ");
echo $giatri . "
";
}












?>
substr(chuỗi,vị trí, số ký tự) : trích ra n ký tự bắt đầu tại vị trí chuỗi
$str="your customer service is excellent.";
echo $str."
";
echo substr($str,1)."
"; //lấy từ vị trí số 1 cho đền hết chuỗi
echo substr($str,-9) ."
"; // bỏ 9 ký tự cuối
echo substr($str,0,4) ."
"; //lấy 4 ky tự đầu tiên
echo substr($str,4,-13) ."
"; //bỏ 4 ký tự dầu và 13 kỳ tự cuối
?>
strlen(chuỗi): cho biết chiều dài chuỗi.
$str="your customer service is excellent.";
echo "Length: " .strlen($str);
?>
strstr,strchr,stristr(chuỗi 1, chuỗi 2) : nếu tìm thấy chuỗi 2 đầu tiên trong chuỗi 1 thì trả về 1
chuỗi bắt đầu từ chuỗi 2 đến hết chuỗi 1, còn không tìm thấy thì trả về false
strrchr(chuỗi 1, chuỗi 2) : nếu tìm thấy chuỗi 2 cuối cùng trong chuỗi 1 thì trả về 1 chuỗi bắt đầu
từ chuỗi 2 đến hết chuỗi 1, còn không tìm thấy thì trả về false.
$str="your customer service is excellent.";
echo strstr($str,"is")."
";
echo strchr($str,"c")."
";
echo strrchr($str,"e")."
";

echo stristr($str,"er")."
";
?>
strpos(chuỗi 1, chuỗi 2 ) : trả về vị trí tìm thấy đầu tiên chuổi 1 trong chuỗi 2, nếu không tìm thấy
thì trả về -1
$str="your customer service is excellent.";
echo $str."
";
echo "is:".strpos($str,"is")."
";
echo "e:".strrpos($str,"e")."
";
?>
str_replace(chuỗi 1, chuỗi 2, chuỗi 3) : thay thế chuỗi 1 bằng chuỗi 2 trong chuỗi 3, hàm sẽ thay
thế tất cả các chuỗi 1 tìm thấy. Để khống chế thay thế từ 1 vị trí nhất định nào đó trong chuỗi 3 trở
về cuối chuỗi thì dùng hàm substr_replace().
$str="Do you have any jobs, please let me know as soon as possible.";
echo $str."
";
echo str_replace("job","book",$str)."
";
echo substr_replace($str,"assp.",41)."
";
?>

c. Hàm xử lý thời gian
• Date(mẫu hiễn thị)
Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

25