Bài giảng Thiết kế và lập trình Web - Bài 5: PHP cơ bản

Một số khái niệm

 Đặc điểm của PHP

– Có khả năng đối tượng

– Thông dịch

– Phân biệt chữ hoa và chữ thường

– Lệnh kết thúc bằng dấu chấm phẩy “ ; ”

– PHP là một ngôn ngữ kịch bản ràng buộc lỏng:

– Không cần khai báo trước, việc khai báo sẽ được tự động thực

hiện khi sử dụng.

– Không cần định kiểu. Kiểu giá trị sẽ được xác định phù hợp với

dữ liệu đầu vào

Tại sao sử dụng PHP?

– PHP dễ học, dễ viết.

– Có khả năng truy xuất hầu hết CSDL có sẵn.

– Thể hiện được tính bền vững, chặn chẽ, phát triển không

giới hạn.

– PHP miễn phí, mã nguồn mở.

Bài giảng Thiết kế và lập trình Web - Bài 5: PHP cơ bản trang 1

Trang 1

Bài giảng Thiết kế và lập trình Web - Bài 5: PHP cơ bản trang 2

Trang 2

Bài giảng Thiết kế và lập trình Web - Bài 5: PHP cơ bản trang 3

Trang 3

Bài giảng Thiết kế và lập trình Web - Bài 5: PHP cơ bản trang 4

Trang 4

Bài giảng Thiết kế và lập trình Web - Bài 5: PHP cơ bản trang 5

Trang 5

Bài giảng Thiết kế và lập trình Web - Bài 5: PHP cơ bản trang 6

Trang 6

Bài giảng Thiết kế và lập trình Web - Bài 5: PHP cơ bản trang 7

Trang 7

Bài giảng Thiết kế và lập trình Web - Bài 5: PHP cơ bản trang 8

Trang 8

Bài giảng Thiết kế và lập trình Web - Bài 5: PHP cơ bản trang 9

Trang 9

Bài giảng Thiết kế và lập trình Web - Bài 5: PHP cơ bản trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 137 trang duykhanh 5180
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Thiết kế và lập trình Web - Bài 5: PHP cơ bản", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Thiết kế và lập trình Web - Bài 5: PHP cơ bản

Bài giảng Thiết kế và lập trình Web - Bài 5: PHP cơ bản
ằm trong 
khoảng từ giá trị nhỏ nhất đến giá trị lớn nhất. 
– Cú pháp: rand ([min, max]) 
<?php 
echo pow(2,5); → 32 
?> 
<?php 
echo rand(); → 10325 
echo rand(); → 7774 
echo rand(10, 100); → 57 
?> 
Thiết kế và lập trình Web 
93 
Các hàm toán học 
 round(): kết quả trả về là một số đã được làm tròn. 
– Nếu chỉ có một tham số là số được truyền vào thì kết quả 
trả về là một số nguyên. 
– Nếu có cả hai tham số là số và vị trí làm tròn thì kết quả trả 
về là một số được làm tròn dựa trên vị trí làm tròn. 
Cú pháp: round (số [, vị trí làm tròn]) 
– Vị trí làm tròn là một số nguyên âm hoặc nguyên dương 
dùng để chỉ định vị trí muốn làm tròn, được tính từ vị trí dấu 
chấm thập phân <?php 
echo round(3.4); → 3 
echo round(3.5); → 4 
echo round(577.545, 2); → 577.55 
echo round(577.545,-1); → 580 
?> 
Thiết kế và lập trình Web 
94 
Các hàm toán học 
 sqrt(): tính căn bậc hai của một số dương bất kỳ 
– Kết quả trả về là căn bậc hai của số 
– Cú pháp: sqrt(số) <?php 
echo sqrt(9); → 3 
?> 
Thiết kế và lập trình Web 
95 
Các hàm chuỗi 
 Định dạng chuỗi 
 So sánh chuỗi 
 Tìm kiếm và thay thế 
 Kết hợp và tách chuỗi 
Thiết kế và lập trình Web 
96 
Định dạng chuỗi - Bỏ ký tự thừa 
 ltrim() 
– Loại bỏ các ký tự thừa bên trái chuỗi. 
– Kết quả trả về là một chuỗi không có ký tự thừa bên trái chuỗi. 
– Cú pháp: 
 ltrim(str [, charlist]) 
• Tham số bắt buộc là chuỗi str 
• Tham số tùy chọn là danh sách các ký tự muốn loại bỏ bên trái chuỗi. 
<?php 
 $text = “\t\tXin chào các bạn :) ...”; 
 echo ltrim($text); 
 → “Xin chào các bạn :) ...” 
?> 
Thiết kế và lập trình Web 
97 
Định dạng chuỗi - Bỏ ký tự thừa 
 rtrim(), chop() 
– Loại bỏ các ký tự thừa bên phải chuỗi. 
– Kết quả trả về là một chuỗi không có ký tự thừa bên phải chuỗi. 
– Cú pháp: 
 rtrim(str [, charlist]) 
 chop(str [, charlist]) 
<?php 
 $text = “\t\tXin chào các bạn :) ... ”; 
 echo rtrim($text); 
 → “\t\tXin chào các bạn :) ...” 
 echo chop($text, “\t.”); 
 → “Xin chào các bạn :)” 
?> 
Thiết kế và lập trình Web 
98 
Định dạng chuỗi - Bỏ ký tự thừa 
 trim() 
– Loại bỏ các ký tự thừa bên phải và bên trái chuỗi. 
– Kết quả trả về là một chuỗi không có ký tự thừa bên phải và bên 
trái chuỗi. 
– Cú pháp: 
 trim(str [, charlist]) 
<?php 
 $text = “\t\tXin chào các bạn :) ... ”; 
 echo trim($text); 
 → “Xin chào các bạn :) ...” 
 echo trim($text, “\t.”); 
 → “Xin chào các bạn :)” 
?> 
Thiết kế và lập trình Web 
99 
Định dạng chuỗi - Bỏ ký tự thừa 
 Lưu ý: nếu không có tham số thứ hai thì hàm ltrim(), rtrim(), 
chop() sẽ tự động loại bỏ các ký tự sau: 
– " " (ASCII 32 (0x20)), ký tự khoảng trắng. 
– "\t" (ASCII 9 (0x09)), ký tự tab. 
– "\n" (ASCII 10 (0x0A)), ký tự về đầu dòng mới. 
– "\r" (ASCII 13 (0x0D)), ký tự xuống dòng. 
– "\0" (ASCII 0 (0x00)), byte NULL. 
– "\x0B" (ASCII 11 (0x0B)), tab dọc. 
 Ngoài ra, có thể liệt kê các ký tự muốn loại bỏ ở charlist 
Thiết kế và lập trình Web 
100 
Định dạng chuỗi – Chuyển đổi kiểu chữ 
 strtoupper(): chuyển đổi chữ thành chữ HOA 
 strtolower(): chuyển đổi chữ thành chữ thường 
 ucfirst(): viết hoa ký tự đầu tiên của chuỗi 
 ucwords(): viết hoa ký tự đầu tiên của mỗi từ 
Cú pháp 
strtoupper(str) 
strtolower(str) 
ucfirst(str) 
ucwords(str) 
<?php 
 echo strtoupper(“happy new year”); 
 → “HAPPY NEW YEAR” 
 echo strtolower(“HAPPY NEW YEAR”); 
 → “happy new year” 
 echo ucfirst(“happy new year”); 
 → “Happy new year” 
 echo ucwords(“happy new year”); 
 → “Happy New Year” 
?> 
Thiết kế và lập trình Web 
101 
Định dạng chuỗi – Chiều dài chuỗi 
 strlen() 
– Kết quả trả về là chiều dài của một chuỗi 
– Cú pháp 
 strlen(str) 
– Ví dụ: 
<?php 
 echo strlen(“abcdef”); → 6 
?> 
Thiết kế và lập trình Web 
102 
Định dạng chuỗi – Đếm ký tự 
 count_chars() 
– Kết quả trả về là một mảng với các phần tử có khóa là mã ASCII 
và giá trị là số lần xuất hiện của các ký tự trong chuỗi. 
– Thứ tự của các khóa được sắp tăng dần theo bảng mã ASCII 
– Cú pháp 
 count_chars(str [, mode]) 
Thiết kế và lập trình Web 
103 
Định dạng chuỗi – Đếm ký tự 
 Mode: là kiểu đếm (tham số tùy chọn) 
 Mode = 0 (hoặc không sử dụng mode): liệt kê tất cả các ký tự 
ASCII từ 0 đến 255 và số lần xuất hiện. 
 Mode = 1 : chỉ liệt kê danh sách có số lần xuất hiện lớn hơn 0 
 Mode = 2: chỉ liệt kê danh sách có số lần xuất hiện bằng 0 
 Mode = 3: chuỗi mới mà mỗi ký tự trong chuỗi gốc chỉ xuất 
hiện ở chuỗi mới 1 lần theo thứ tự tăng dần của bảng mã 
ASCII. 
 Mode = 4: trả về một chuỗi mới với các ký tự theo thứ tự tăng 
dần theo bảng mã ASCII, mà các ký tự này không xuất hiện ở 
chuỗi gốc. 
Thiết kế và lập trình Web 
104 
Định dạng chuỗi – Đếm ký tự 
 Ví dụ: mode = 1 
<?php 
 $str = "Hello World!"; 
 print_r(count_chars($str,1)); 
 → 
 Array 
 ( 
 [32] => 1 [33] => 1 [72] => 1 
 [87] => 1 [100] => 1 [101] => 1 
 [108] => 3 [111] => 2 [114] => 1 
 ) 
?> 
Thiết kế và lập trình Web 
105 
So sánh chuỗi – Có phân biệt HOA - thường 
 strcmp() 
– So sánh hai chuỗi có phân biệt chữ HOA, chữ thường. 
– Kết quả trả về: 
• =0: nếu hai chuỗi bằng nhau 
• <0: nếu chuỗi str1 nhỏ hơn chuỗi str2 
• >0: nếu chuỗi str1 lớn hơn chuỗi str2 
Cú pháp 
strcmp(str1, str2 ) 
 Lưu ý: Việc so sánh chuỗi dựa trên bảng mã ASCII 
của các ký tự 
Thiết kế và lập trình Web 
106 
So sánh chuỗi – Có phân biệt HOA - thường 
 Ví dụ: 
<?php 
 echo strcmp(“hello”, “Hello”); 
→ 1 (chuỗi thứ nhất lớn hơn chuỗi thứ hai) vì 
trong bảng mã ASCII ký tự ’h’ có giá trị là 101 
lớn hơn ký tự ’H’ có giá trị là 72, các ký tự còn 
lại trong chuỗi đều giống nhau 
 echo strcmp(“Hôm nay”, “Thứ tư”); → -1 
?> 
Thiết kế và lập trình Web 
107 
So sánh chuỗi – Không phân biệt HOA - 
thường 
 strcasecmp(), strnatcmp() 
– So sánh hai chuỗi không phân biệt chữ HOA, chữ thường. 
– Kết quả trả về: 
• =0: nếu hai chuỗi bằng nhau 
• <0: nếu chuỗi str1 nhỏ hơn chuỗi str2 
• >0: nếu chuỗi str1 lớn hơn chuỗi str2 
Cú pháp 
strcasecmp(str1, str2) 
strnatcmp(str1, str2) 
<?php 
 echo strnatcmp(“hello”, “Hello”); → 0 
?> 
Thiết kế và lập trình Web 
108 
Tìm kiếm và thay thế - Tìm một chuỗi trong chuỗi 
 strstr(), strchr() 
– Tìm một chuỗi trong chuỗi. 
– Kết quả trả về là một chuỗi con của chuỗi str1 được lấy từ 
vị trí xuất hiện đầu tiên của chuỗi str2 đến hết chuỗi str1 
nếu tìm thấy chuỗi str2 trong chuỗi str1, nếu không tìm thấy 
chuỗi str2 trong chuỗi str1 thì trả về FALSE. 
Cú pháp 
strstr(str1, str2) 
strchr(str1, str2) 
<?php 
 $email = “phuong@yahoo.com”; 
 $domain = strstr($email, “@”); 
 echo $domain; →“@yahoo.com” 
?> 
Thiết kế và lập trình Web 
109 
Tìm kiếm và thay thế - Tìm vị trí của chuỗi 
con 
 strpos() 
– Kết quả trả về là vị trí tìm thấy của chuỗi str2 trong chuỗi 
str1, nếu trong chuỗi str1 có nhiều chuỗi str2 thì kết quả trả 
về sẽ là vị trí đầu tiên mà chuỗi str2 xuất hiện trong chuỗi 
str1. Nếu không tìm thấy chuỗi str2 trong chuỗi str1 thì kết 
quả trả về là FALSE 
Cú pháp 
strpos(str1, str2) 
 Lưu ý: Để kiểm tra kết quả thì phải dùng toán tử === 
thay cho toán tử == 
Thiết kế và lập trình Web 
110 
Tìm kiếm và thay thế - Tìm vị trí của chuỗi 
con 
 Ví dụ: 
<?php 
 $str1 = “abc def a”; 
 $str2 = “g”; 
 $vi_tri = strpos($str1, $str2); 
 if($vi_tri === FALSE) 
 echo “Không tìm thấy”; 
 else 
 echo “Vị trí tìm thấy : “. $vi_tri; 
?> 
Thiết kế và lập trình Web 
111 
Tìm kiếm và thay thế 
 str_replace() 
– Tìm kiếm chuỗi str1 trong chuỗi str, nếu tìm thấy thì thay thế 
chuỗi str1 bằng chuỗi str2 trong chuỗi str. 
 Cú pháp 
str_replace(str1, str2, str) 
<?php 
 echo str_replace(“em”, “bé”, “Hôm qua em đến trường”); 
 → “Hôm qua bé đến trường” 
?> 
Thiết kế và lập trình Web 
112 
Kết hợp và tách chuỗi – Tách chuỗi 
 explode() 
– Tách chuỗi str thành nhiều chuỗi con bằng cách chỉ định chuỗi 
tách separator và gán từng chuỗi con này vào các phần tử của 
mảng 
 Cú pháp 
explode(separator, str) 
<?php 
 $chuoi = “happy new year”; 
 $mang_chuoi = explode(“ ”, $chuoi); 
 echo $mang_chuoi[0]; → “happy” 
 echo $mang_chuoi[1]; → “new” 
 echo $mang_chuoi[2]; → “year” 
?> 
Thiết kế và lập trình Web 
113 
Kết hợp và tách chuỗi – Kết hợp chuỗi 
 implode() 
– Kết hợp các phần tử của mảng thành một chuỗi và các phần tử 
khi ráp thành chuỗi sẽ cách nhau bằng chỉ định cách separator 
 Cú pháp 
implode(separator, array) 
<?php 
 $mang_chuoi = array(“happy”, “new”, “year”); 
 $chuoi = implode(“ ”, $mang_chuoi); 
 echo $chuoi; → “happy new year” 
?> 
Thiết kế và lập trình Web 
114 
Bài tập 
 Xây dựng hàm normalize($st) chuẩn hóa một chuổi văn 
bản(dạng đơn giản): không có ký tự trống ở hai đầu, giữa 2 
từ chỉ có duy nhất một ký tự trống. 
Thiết kế và lập trình Web 
115 
Bài tập 
<?php 
$str=" Happy New Year 2014 "; 
echo "Chuỗi ban đầu ". $str; 
function normalize($st){ 
 $str=trim($str); // cắt các ký tự trống ở hai đầu 
 $twoSpace=" "; $oneSpace=" "; 
 while(strpos($st,$twoSpace)>0){ 
 $st=str_replace($twoSpace,$oneSpace,$st); 
 } 
 return $st; 
} 
echo "Sau khi chuẩn hóa ". normalize($str); 
?> 
Thiết kế và lập trình Web 
116 
Các hàm thời gian 
 Kiểm tra ngày hợp lệ 
 Định dạng ngày 
 Lấy các giá trị của ngày hiện tại 
 Lấy thời gian hiện tại 
 Chuyển đổi ngày 
 Chuyển chuỗi thời gian thành giá trị thời gian 
 Đổi thời gian sang đơn vị giây 
 Định dạng thời gian thành số nguyên 
Thiết kế và lập trình Web 
117 
Kiểm tra ngày hợp lệ 
 checkdate() 
– Kiểm tra ngày với tháng, ngày, năm được truyền vào, nếu ngày 
hợp lệ thì kết quả trả về là TRUE, ngược lại trả về FALSE 
 Cú pháp: 
checkdate(tháng, ngày, năm) 
<?php 
 echo checkdate(11,30,2007); → TRUE 
?> 
Thiết kế và lập trình Web 
118 
Định dạng ngày 
 date() 
– Kết quả trả về là ngày hiện tại sau khi đã được định dạng 
 Cú pháp: 
date(chuỗi định dạng) 
<?php 
 echo date(“d/m/Y h:m:s”); 
 → 28-11-2007 11:11:07 
 echo date(“D-M-Y”); 
 → Thu–Dec-2007 
?> 
Thiết kế và lập trình Web 
119 
Lấy các giá trị của ngày hiện tại 
 getdate() 
– Kết quả trả về là một mảng gồm 10 phần tử (có khóa dạng 
chuỗi) chứa các thông tin cần thiết của ngày hiện tại. 
[seconds] – giây, [minutes] - phút, [hours] – giờ 
[mday] – ngày trong tháng, [wday] – ngày trong tuần 
[mon] – tháng (dạng số), [year] – năm, [yday] – ngày trong 
năm 
[weekday] – thứ trong tuần, [month] – tháng (dạng chữ) 
Thiết kế và lập trình Web 
120 
Lấy các giá trị của ngày hiện tại 
 Cú pháp: 
getdate() 
 Ví dụ: 
<?php 
 $today = getdate(); 
 print_r($today); 
?> 
 → Array 
 ( [seconds] => 18 [minutes] => 18 [hours] => 13 
 [mday] => 28 [wday] => 3 [mon] => 11 [year] => 2007 
 [yday] => 331 [weekday] => Wednesday 
 [month] => November 
 ) 
Thiết kế và lập trình Web 
121 
Lấy thời gian hiện tại 
 time() 
– Kết quả trả về là thời gian hiện tại được đo lường theo giá trị giây 
(tính từ 1/1/1970 00:00:00 GMT) 
 Cú pháp: 
time() <?php 
 $tuan_sau = time() + (7 * 24 * 60 * 60); 
 // 7 days; 24 hours; 60 mins; 60secs 
 echo ”Hiện tại:”. date(”Y-m-d”) .""; 
 → Hiện tại: 2007-11-28 
 echo ”Tuần sau: ”. date(”Y-m-d”, $tuan_sau) .""; 
 → Tuần sau: 2007-12-05 
?> 
Thiết kế và lập trình Web 
122 
Chuyển chuỗi thời gian thành giá trị thời 
gian 
 strtotime() 
– Kết quả trả về là tổng số giây của thời gian nếu chuỗi thời 
gian đúng, ngược lại sẽ trả về FALSE 
– Tổng số giây = thời gian được truyền vào trong hàm 
strtotime() - January 1 1970 00:00:00 (vì thời gian bắt đầu 
được tính từ: January 1 1970 00:00:00) 
Cú pháp: 
strtotime(chuỗi thời gian) 
<?php 
 echo strtotime("now"); 
 → 1.204.795.981 
 // Với now = 06-03-2008 16:33:01 
?> 
Thiết kế và lập trình Web 
CƠ CHẾ TRUYỀN NHẬN DỮ 
LIỆU 
Thiết kế và lập trình Web 
Cơ chế truyền nhận dữ liệu 
? 
Thiết kế và lập trình Web 
Cơ chế truyền nhận dữ liệu 
 Trang web nhập dữ liệu : 
– Sử dụng đối tượng 
– Nhập liệu thông qua các formfield 
– Thực hiện việc truyền dữ liệu thông qua Submit 
 Trang web nhận dữ liệu (URL): Sử dụng các biến toàn cục của PHP 
– $_POST[“FieldName”] 
– $_GET[“FieldName”] 
– $_REQUEST[“FieldName”] 
Thiết kế và lập trình Web 
Cơ chế truyền nhận dữ liệu – Trang web nhập liệu 
timSach.php 
 Tìm sách 
 Từ khóa : 
Thiết kế và lập trình Web 
Cơ chế truyền nhận dữ liệu – Trang web nhập liệu 
xltimSach.php 
 <?php 
 $sTukhoa = $_REQUEST["txtTukhoa"]; 
 ?> 
 Tìm sách 
 Từ khóa tìm sách là : 
 Kết quả tìm là : 
Thiết kế và lập trình Web 
Cơ chế truyền nhận dữ liệu – Trang web nhập liệu 
xuly.php 
 Từ khóa : 
 <?php 
 $sTukhoa = $_REQUEST["txtTukhoa"]; 
 if (isset($sTukhoa)) 
 { 
 print "Từ khóa tìm sách là : $sTukhoa"; 
 echo "Kết quả tìm là : "; 
 } 
 ?> 
Thiết kế và lập trình Web 
Truyền/Nhận qua Phương thức GET 
 Tham số truyền đi qua địa chỉ URL 
–  
– Ví dụ: 
•  
 Nhận dữ liệu thông qua biến toàn cục của PHP 
– $_GET[“FieldName”] 
– $_REQUEST[“FieldName”] 
Thiết kế và lập trình Web 
Phương thức GET – Ưu khuyết điểm 
 Khuyết điểm 
– Không thích hợp để truyền dữ liệu có tính bảo mật (password) 
– Dung lượng Dữ liệu truyền đi có giới hạn 
– URL submit bằng phương thức GET được lưu lại trên server 
 Ưu điểm 
– Người dùng có thể bookmark địa chỉ URL 
– Người dùng có thể Giả lập phương thức GET để truyền dữ liệu 
mà không cần thông qua FORM 
Thiết kế và lập trình Web 
Ví dụ 
File: GET.HTM 
Input data 
Xem chi tiết 
Thiết kế và lập trình Web 
Ví dụ (tt) 
File: CHITIET.PHP 
Input data 
<?php 
 echo "Ma dien thoai la " . $_GET["Ma"]; 
?> 
Thiết kế và lập trình Web 
Truyền/Nhận qua Phương thức POST 
 Tham số truyền đi được ẩn bên trong FORM 
 Nhận dữ liệu thông qua biến toàn cục của PHP 
– $_POST[“FieldName”] 
– $_REQUEST[“FieldName”] 
Thiết kế và lập trình Web 
Phương thức POST – Ưu khuyết điểm 
 Ưu điểm 
– Bảo mật hơn phương thức GET 
– Không giới hạn dung lượng dữ liệu truyền đi 
 Khuyết điểm 
– Kết quả trang web trả về không thể bookmark 
– Có thể gây ra lỗi nếu người dùng muốn quay lại trang kết quả 
(nhấn nút Back hoặc Refresh) do bị expired 
– Dữ liệu có thể không truyền đi được do vấn đề về security 
Thiết kế và lập trình Web 
Bài tập áp dụng 
 Tạo 1 trang web với hộp thoại nhập liệu username và 
password. 
– Nếu người sử dụng nhập thông tin username/password 
là admin/12345 thì xuất ra thông báo "welcome, admin" 
với kiểu chữ Tahoma, màu đỏ. 
– Ngược lại nếu nhập sai thì xuất thông báo "Username 
hoặc password sai. Vui lòng nhập lại. 
135 
Thiết kế và lập trình Web 
Bài tập áp dụng 
 Trang login.html 
136 
Thiết kế và lập trình Web 
Bài tập áp dụng 
 Trang checklogin.php 
137 

File đính kèm:

  • pdfbai_giang_thiet_ke_va_lap_trinh_web_bai_5_php_co_ban.pdf