Bài giảng Thiết kế và lập trình Web - Bài 5: PHP cơ bản - Viện Công nghệ thông tin và truyền thông

1. Giới thiệu về PHP

 PHP là gì?

– PHP = PHP Hypertext Preprocessor, tên gốc là Personal

Home Pages.

– PHP là ngôn ngữ viết web động.

– Bộ biên dịch PHP là phần mềm mã nguồn mở.

– Là ngôn ngữ server-side script, tương tự như ASP, JSP,

thực thi ở phía WebServer

– Thường kết nối với hệ quản trị CSDL MySQL

pdf 205 trang phuongnguyen 10160
Bạn đang xem 20 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 - Viện Công nghệ thông tin và truyền thông", để 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 - Viện Công nghệ thông tin và truyền thông

Bài giảng Thiết kế và lập trình Web - Bài 5: PHP cơ bản - Viện Công nghệ thông tin và truyền thông
Thiết kế và lập trình Web 
Viện CNTT & TT 
Bài 5 
PHP cơ bản 
Thiết kế và lập trình Web 
1. Giới thiệu về PHP 
 PHP là gì? 
– PHP = PHP Hypertext Preprocessor, tên gốc là Personal 
Home Pages. 
– PHP là ngôn ngữ viết web động. 
– Bộ biên dịch PHP là phần mềm mã nguồn mở. 
– Là ngôn ngữ server-side script, tương tự như ASP, JSP,  
thực thi ở phía WebServer 
– Thường kết nối với hệ quản trị CSDL MySQL 
Thiết kế và lập trình Web 
Giới thiệu về PHP – Lịch sử phát triển 
 PHP : Rasmus Lerdorf in 1994 (được phát triển để phát sinh các form đăng nhập 
sử dụng giao thức HTTP của Unix) 
 PHP 2 (1995) : Chuyển sang ngôn ngữ script xử lý trên server. Hỗ trợ CSDL, 
Upload File, khai báo biến, mảng, hàm đệ quy, câu điều kiện, biểu thức,  
 PHP 3 (1998) : Hỗ trợ ODBC, đa hệ điều hành, giao thức email (SNMP, IMAP), 
bộ phân tích mã PHP (parser) của Zeev Suraski và Andi Gutmans 
 PHP 4 (2000) : Trợ thành một thành phần độc lập cho các webserver. Parse đổi 
tên thành Zend Engine. Bổ sung các tính năng bảo mật cho PHP 
 PHP 5 (2005) : Bổ sung Zend Engine II hỗ trợ lập trình HĐT, XML, SOAP cho 
Web Services, SQLite 
 Phiên bản mới nhất của PHP là version PHP 5.4.0 (www.php.net) 
Thiết kế và lập trình Web 
Cơ chế hoạt động của WebServer 
2 
Internet 
or Intranet 
www.example.com 
Webserver Apache 
or IIS 
ServerSide Script 
Parser 
(PHP, ASP, ..) 
Database 
Server 
Disk 
driver 
3 
4 5 
6 7 
4 
HTML 
Thiết kế và lập trình Web 
5 
Cài đặt 
Để thiết kế trang web sử dụng PHP 
& MySQL, cần cài đặt: 
– Máy chủ web Apache 
– PHP 
– Hệ quản trị cơ sở dữ liệu MySQL 
XAMPP 
Thiết kế và lập trình Web 
Một số khái niệm 
PHP nhúng vào HTML 
– Có thể nhúng mã PHP vào mọi vị trí trong tài liệu 
HTML. 
– Chèn mã PHP vào file HTML: Có 3 dạng chính 
 echo("Hello World!"); 
– Phần mở rộng của tập tin chứa mã PHP thường là 
.php: index.php, giohang.php, ... 
Thiết kế và lập trình Web 
Ví dụ 1 
7 
Thiết kế và lập trình Web 
Ví dụ 2 
8 
Thiết kế và lập trình Web 
Ví dụ 3 
9 
Tham số Ý nghĩa 
short_open_tag = Off Cho phép sử dụng 
asp_tags = Off Cho phép sử dụng 
post_max_size = 8M Kích thước tối đa của dữ liệu gửi lên server 
file_uploads = On Cho phép upload file 
upload_max_filesize = 2M Kích thước tối đa của mỗi file upload 
Chỉnh sửa php.ini 
Không nên sử 
dụng cú pháp 
PHP viết tắt 
Thiết kế và lập trình Web 
Ví dụ 4 
10 
Cẩn thận với 
Javascript 
Cú pháp ASP 
không hỗ trợ 
PHP6 
Thiết kế và lập trình Web 
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 
Thiết kế và lập trình Web 
Một số khái niệm 
 Tại sao cần 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ở. 
Thiết kế và lập trình Web 
Viết ghi chú trong PHP 
Để ghi chú trong PHP có 3 dạng sau: 
Dạng 1: # đây là ghi chú. 
Dạng này chỉ áp dụng ghi đó chỉ nằm trên một dòng văn 
bản 
Dạng 2: // đây là ghi chú. 
Dạng này cũng chỉ áp dụng ghi đó chỉ nằm trên một dòng 
văn bản 
Dạng 3: /* đây là một ghi chú dài 
 Áp dụng cho nhiều hàng */ 
Thiết kế và lập trình Web 
14 
1. Biến 
 Khái niệm 
 Khai báo và gán giá trị cho biến 
 Phạm vi hoạt động của biến 
Thiết kế và lập trình Web 
16 
Khai báo và gán giá trị cho biến 
 Khai báo biến 
– Cú pháp: $tên_biến 
– Ví dụ: $tong 
 Quy tắc đặt tên cho biến 
– Tên biến phải bắt đầu bằng ký tự $, theo sau là 1 ký tự hoặc 
dấu _, tiếp đó là ký tự, ký số hoặc dấu _ 
– Nên khởi tạo giá trị ban đầu cho biến 
– Tên biến không trùng với tên hàm 
– Biến không nên bắt đầu bằng ký số 
Thiết kế và lập trình Web 
17 
Khai báo và gán giá trị cho biến 
 Lưu ý 
– Tên biến có phân biệt chữ HOA – chữ thường 
– Ví dụ: biến $a và biến $A là hai biến khác nhau 
Thiết kế và lập trình Web 
Khai báo biến – Ví dụ 
 Ví dụ : 
18 
STT Tên biến 
1 $size 
2 $0Zero 
3 $my_drink_size 
4 $_drinks 
5 $Size 
6 $drink4you 
7 $$2hot4u 
8 $drink-Size 
9 Size 
Biến sai ? 
Bao nhiêu 
Biến? 
Thiết kế và lập trình Web 
19 
Khai báo và gán giá trị cho biến 
 Gán giá trị cho biến 
– Gán giá trị trực tiếp 
• Cú pháp: $tên_biến = ; 
• Ví dụ: 
<?php 
 $so_luong = 100; 
?> 
Thiết kế và lập trình Web 
21 
Phạm vi hoạt động của biến 
 Biến cục bộ 
 Biến toàn cục 
 Biến static 
Thiết kế và lập trình Web 
22 
Phạm vi hoạt động của biến 
 Biến cục bộ 
– Biến được khai báo trong hàm => biến cục bộ 
– Khi ra khỏi hàm => biến cục bộ và giá trị của nó sẽ bị hủy bỏ 
– Lưu ý: khi có cùng tên thì biến bên trong hàm và biến bên 
ngoài hàm là hai biến hoàn toàn khác nhau 
Thiết kế và lập trình Web 
23 
Phạm vi hoạt động của biến 
 Biến cục bộ 
– Ví dụ: 
<?php 
function Test() 
{ 
 $a=5; 
 echo $a; // phạm vi cục bộ 
} 
Test(); → 5 
echo $a; → khong co 
?> 
Thiết kế và lập trình Web 
24 
Phạm vi hoạt động của biến 
 Biến toàn cục 
– Có thể truy xuất bất cứ nơi nào trong trang 
– Khi muốn sử dụng và cập nhật biến toàn cục trong hàm thì 
phải dùng từ khóa global phía trước biến hoặc dùng 
$_GLOBALS[“tên_biến”] 
Thiết kế và lập trình Web 
25 
Phạm vi hoạt động của biến 
 Biến toàn cục 
– Ví dụ: dùng từ khóa global 
<?php 
$a = 1; 
$b = 2; 
function Sum() 
{ 
 global $a, $b; 
 $b = $a + $b; 
} 
Sum(); 
echo $b; → 3 
?> 
Thiết kế và lập trình Web 
26 
Phạm vi hoạt động của biến 
 Biến toàn cục 
– Ví dụ: dùng biến $_GLOBALS 
<?php 
$a = 1; 
$b = 2; 
function Sum() 
{ 
 $_GLOBALS['b'] = $_GLOBALS['a'] + $_GLOBALS['b']; 
} 
Sum(); 
echo $b; → 3 
?> 
Thiết kế và lập trình Web 
27 
Phạm vi hoạt động của biến 
 Biến static 
– Không mất đi giá trị khi ra khỏi hàm 
– Sẽ giữ nguyên giá trị trước đó khi hàm được gọi một lần 
nữa 
– Phía trước tên biến static phải có từ khóa static 
Thiết kế và lập trình Web 
28 
Phạm vi hoạt động của biến 
 Biến static 
– Ví dụ: 
<?php 
function Test() 
{ 
 static $a = 0; 
 echo $a; 
 $a++; 
} 
Test(); → 0 
Test(); → 1 
Test(); → 2 
?> 
Thiết kế và lập trình Web 
Xuất dữ liệu ra trình duyệt 
29 
 Cú pháp: 
void echo(tham số chuổi [, tham số 
chuổi [, tham số chuổi]]) 
 Ví dụ: 
echo() 
print() 
printf() 
sprintf() 
Thiết kế và lập trình Web 
Xuất dữ liệu ra trình duyệt 
30 
 Cú pháp: 
int print(tham số) 
 Ví dụ: 
echo() 
print() 
printf() 
sprintf() 
Thiết kế và lập trình Web 
Xuất dữ liệu ra trình duyệt 
31 
 Cú pháp: 
boolean printf(string 
format [, mixed args]) 
 Ví dụ: 
echo() 
print() 
printf() 
sprintf() 
Thiết kế và lập trình Web 
Xuất dữ liệu ra trình duyệt 
32 
Ký hiệu Kiểu tham số Thể hiện ra 
%b Số nguyên Số nhị phân 
%c Số nguyên 1 ký tự ACSII 
%d Số nguyên Số nguyên 
%f Số thực Số thực 
%o Số nguyên Số bát phân 
%s Chuỗi Chuỗi 
%u Số nguyên Số nguyên không dấu 
%x Số nguyên Số thập lục phân thường 
%X Số nguyên Số thập lục phân hoa 
echo() 
print() 
printf() 
sprintf() 
printf("$%.2f", 43.2); // $43.20 
Thiết kế và lập trình Web 
Xuất dữ liệu ra trình duyệt 
33 
 Cú pháp: 
string sprint(string format 
[, mixed args]) 
 Ví dụ: 
echo() 
print() 
printf() 
sprintf() 
$cost = sprintf("$%.2f", 43.2); 
// $cost = $43.20 
Thiết kế và lập trình Web 
Xuất dữ liệu ra trình duyệt 
echo() 
print() 
printf() 
sprintf() 
34 
Xuất chuỗi 
“tĩnh” 
Xuất chuỗi 
“động” 
Thiết kế và lập trình Web 
35 
2. Hằng 
 Khai báo 
 Sử dụng 
Thiết kế và lập trình Web 
36 
Khai báo 
– Khái niệm: Hằng là một giá trị không thể chỉnh sửa được trong 
quá trình thực hiện chương trình. 
– Quy tắc đặt tên hằng cũng giống như quy tắc đặt tên biến. 
– Dùng hàm define() để định nghĩa. Một khi hằng được định 
nghĩa, nó không bị thay đổi. 
– Chỉ có các kiểu dữ liệu boolean, integer, float, string mới có 
thể chứa các hằng. 
Thiết kế và lập trình Web 
37 
Khai báo 
 Cú pháp: define(“TÊN_HẰNG”, giá_trị); 
– Ví dụ: khai báo hằng số PI có giá trị là 3.14 
<?php 
 define(“PI”, 3.14); 
?> 
Thiết kế và lập trình Web 
38 
Sử dụng 
 Dùng tên hằng mỗi khi muốn sử dụng 
– Ví dụ: tính diện tích và chu vi hình tròn với bán kính r=10 
<?php 
 define(“PI”, 3.14); 
 $r=10; 
 $s= PI * pow($r ,2); → $s = 314 
 $p = 2 * PI * $r; → $p = 62.8 
?> 
Thiết kế và lập trình Web 
40 
3. Kiểu dữ liệu 
 Kiểu dữ liệu – mô tả 
 Chuyển đổi kiểu dữ liệu 
Thiết kế và lập trình Web 
Kiểu dữ liêu trong PHP 
PHP hỗ trợ 4 kiểu dữ liệu 
–Kiểu số. 
–Kiểu chuỗi 
–Kiểu lôgic 
–Kiểu mảng và kiểu đối tượng 
Thiết kế và lập trình Web 
42 
Kiểu dữ liệu – mô tả 
 Boolean: chỉ có một trong hai giá trị là TRUE và FALSE 
– Ví dụ: 
<?php 
 $ket_qua = True; 
?> 
Thiết kế và lập trình Web 
Kiểu số 
 Số nguyên từ -231 đến 231-1 
– Hệ thập phân: VD: $a = 16; 
– Hệ 16 (hexa): VD: $a=0x10; 
– Hệ 8 (bát phân): VD: 020; 
 Số thực (thập phân): từ 1.7E-308 đến 1.7E+308 
– Biểu diễn: $a = 0.017 
– Dạng khoa học: $a = 17.0E-03 
Thiết kế và lập trình Web 
44 
Kiểu dữ liệu – mô tả 
 Integer: Kiểu số nguyên. 
 Giá trị có thể là số trong hệ thập phân, thập lục phân và 
bát phân. 
– Ví dụ: 
<?php 
 $a = 1234; // hệ thập phân 
 $b = -123; // số âm hệ thập phân 
 $c = 0123; // hệ bát phân (bắt đầu bằng 0 theo sau là các ký số) 
 $d = 0x1A; // hệ thập lục phân (bắt đầu bằng 0x theo sau là các ký số) 
?> 
Thiết kế và lập trình Web 
45 
Kiểu dữ liệu – mô tả 
 Float / double: Kiểu dữ liệu số thực. 
– Ví dụ: 
<?php 
 $a = 1.234; 
 $b = 1.2e3; → 1.2 * 1000 = 1200 
?> 
Thiết kế và lập trình Web 
46 
Kiểu dữ liệu – mô tả 
 String: Kiểu dữ liệu chuỗi, ký tự. Trong đó, mỗi ký tự 
chiếm 1 byte. 
 Mỗi chuỗi có thể chứa một hay nhiều ký tự thuộc 256 ký 
tự khác nhau. 
 Chuỗi không có giới hạn về kích thước. 
– Ví dụ: 
<?php 
 $chuoi = ‘Chúc mừng năm mới’; 
 echo “$chuoi 2008”; → “Chúc mừng năm mới 2008” 
?> 
Thiết kế và lập trình Web 
Kiểu chuỗi 
Giới hạn bởi nháy đơn (‘) hoặc kép (“) 
Chuỗi đặt trong nháy kép bị thay thế và xử lý ký 
tự thoát. Trong nháy đơn thì không. 
 PHP không hỗ trợ Unicode, để làm việc với Unicode bạn phải 
sử dụng UTF8 với các hàm utf8_encode() – utf8_decode(). 
Ví dụ: 
$a = “Hello”; 
$b = “$a world”; //tương đương $b=“Hello world” 
$c = ‘$a world’; //$c=‘$a world’ (không thay đổi) 
Thiết kế và lập trình Web 
48 
Kiểu dữ liệu – mô tả 
<?php 
 // tạo và in một mảng 
 $array = array(1, 2, 3, 4, 5); 
 print_r($array); 
?> 
 Array: Kiểu dữ liệu mảng các phần tử 
– Ví dụ: 
Thiết kế và lập trình Web 
49 
Kiểu dữ liệu – mô tả 
 Array: 
– $n = 100; 
 $arr1 = array($n); 
– $arr2 = array(giá trị 1, giá trị 2,..., giá trị n); 
– $arr3 = array(); //Mảng động 
– $arr4 = array(hoten => “HTùng”, //Mảng kết hợp 
 quequan => “LX”, 
 tuoi => 24, 
 IQ => “Rất cao”); 
Thiết kế và lập trình Web 
50 
Kiểu dữ liệu – mô tả 
<?php 
class a 
{ 
 function chao_a() 
 { 
 echo "Xin chào a"; 
 } 
} 
$b = new a(); 
$b->chao_a(); // Kết quả: “Xin chào a” 
?> 
 Object: Kiểu dữ liệu là đối tượng của một lớp 
– Ví dụ: 
Thiết kế và lập trình Web 
51 
Chuyển đổi kiểu dữ liệu 
 Trong quá trình tính toán, kiểu dữ liệu cũ của biến có thể 
không còn phù hợp nữa (kết quả tính toán vượt khỏi phạm vi 
của kiểu dữ liệu cũ) => chuyển đổi kiểu dữ liệu 
 Cách thực hiện: ghi tên kiểu dữ liệu mà biến muốn chuyển 
đổi vào phía trước biến 
– Ví dụ: 
<?php 
 $don_gia = 5000; 
 $so_luong = 100; 
 $thanh_tien = (double)($so_luong*$don_gia); 
?> 
Thiết kế và lập trình Web 
Chuyển kiểu dữ liệu 
 Cú pháp 
– Cách 1 (automatic) 
 $var = "100" + 15; 
 $var = "100" + 15.0; 
 $var = 39 . " Steps"; 
– Cách 2: (datatype) $var 
– Cách 3: settype($var, “datatype”) 
$var (int)$var (bool)$var (string)$var 
null 0 false “” 
true 1 “1” 
false 0 “” 
“6 feet” 6 true 
“foo” 0 true 
Thiết kế và lập trình Web 
53 
4. Các toán tử 
 Toán tử số học 
 Toán tử nối chuỗi 
 Toán tử gán kết hợp 
 Toán tử so sánh 
 Toán tử luận lý 
Thiết kế và lập trình Web 
Các toán tử 
Các phép toán cơ bản: 
 Phép gán: $biến = biểu_thức; 
 Các phép toán số học: +, -, *, /, % 
 Các phép toán so sánh: ==, ===, !=, >=, , < 
 Các phép toán kết hợp: ++, --, +=, -=, *=, /= 
 Các phép toán logic: !, &&, || 
 Toán tử tam phân: (điều_kiện ? giá_trị_1 : giá_trị_2) 
 Phép ghép chuỗi: . (dấu chấm) 
 Toán tử error: @, ngăn không cho thông báo lỗi 
– Ví dụ: $a = 10; $b = 0; $c = @$a / $b; 
54 
Thiết kế và lập trình Web 
Giáo viên: Hồ Diên Lợi Slides 55 of 180 
Các phép toán trong PHP 
 Phép toán toán học 
Phép toán Ví dụ Kết quả 
+ $y =2; $x=$y+2; 4 
- $y =2; $x=5-$y; 3 
* $y =2; $x=$y*5; 10 
/ $y =5; $x=$y/2; 2.5 
% $y =5%3; 
$x =16%8; 
2 
0 
++ $y =5; $x++; x=6 
-- $y =5; $x--; x=4 
Thiết kế và lập trình Web 
Giáo viên: Hồ Diên Lợi Slides 56 of 180 
Các phép toán trong PHP 
 Phép gán 
Phép toán Ví dụ Tương đương 
= $x=$y; $x=$y; 
+= $x+=$y; $x=$x+$y; 
-= $x-=$y; $x=$x-$y; 
*= $x*=$y; $x=$x*$y; 
/= $x/=$y; $x=$x/$y; 
.= $x.=$y; $x=$x.$y; 
%= $x%=$y; $x=$x%$y; 
Thiết kế và lập trình Web 
Giáo viên: Hồ Diên Lợi Slides 57 of 180 
Các phép toán trong PHP 
 Phép so sánh 
Phép toán Ví dụ 
== 5==8 kết quả false 
!= 5!=8 kết quả true 
 58 kết quả true 
> 5>8 kết quả false 
< 5<8 kết quả true 
>= 5>=8 kết quả false 
<= 5<=8 kết quả true 
Thiết kế và lập trình Web 
Giáo viên: Hồ Diên Lợi Slides 58 of 180 
Các phép toán trong PHP 
 Phép toán logic 
Phép toán Ví dụ 
&& $x=6; $y=3; 
($x 1) kết quả true 
|| $x=6; $y=3; 
($x==5 || $y==5) kết quả false 
! $x=6; $y=3; 
!($x==$y) kết quả true 
Thiết kế và lập trình Web 
65 
Toán tử nối chuỗi 
 Sử dụng toán tử “.” để nối các chuỗi lại với nhau 
 Ví dụ: 
<?php 
 $chuoi_1 = “vietnam”; 
 $chuoi_2 = “airline.com.vn”; 
 $chuoi = $chuoi_1 . $chuoi_2; 
 → “vietnamairline.com.vn” 
?> 
 Kết quả khi sử dụng toán tử nối chuỗi có kiểu 
là kiểu chuỗi 
Thiết kế và lập trình Web 
74 
Toán tử so sánh 
 Toán tử == 
– Thực hiện phép so sánh bằng 
– Ví dụ: 
<?php 
 $a = $_POST[“a”]; 
 $b = $_POST[“b”]; 
 $kq = “”; 
 if ($a==$b) 
 $kq = “a bằng b”; 
?> 
Thiết kế và lập trình Web 
75 
Toán tử so sánh 
 Toán tử === 
– Thực hiện phép so sánh bằng với các đối tượng có cùng kiểu dữ 
liệu 
– Ví dụ: 
<?php 
 $a = $_POST[“a”]; 
 $b = $_POST[“b”]; 
 $kq = “”; 
 if ($a===$b) 
 $kq = “ a bằng b và có cùng kiểu dữ liệu”; 
?> 
Thiết kế và lập trình Web 
82 
5. Tham chiếu 
 Khái niệm 
 Cách thức làm việc của tham chiếu 
Thiết kế và lập trình Web 
83 
Khái niệm 
 Trong PHP tham chiếu có nghĩa là lấ ... 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]) 
Thiết kế và lập trình Web 
180 
Định dạng chuỗi - Bỏ ký tự thừa 
 Ví dụ 
<?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 
181 
Đị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]) 
Thiết kế và lập trình Web 
182 
Định dạng chuỗi - Bỏ ký tự thừa 
 Ví dụ 
<?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 
183 
Đị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 
184 
Định dạng chuỗi – Xuống dòng 
 nl2br() 
– Khi trình bày dữ liệu trên trang Web, cần phải định dạng lại 
những ký tự “\n” trong cơ sở dữ liệu thành thẻ “” để trình bày 
xuống hàng trên trình duyệt Web 
– Cú pháp: 
 nl2br(str) 
Thiết kế và lập trình Web 
185 
Định dạng chuỗi – Xuống dòng 
 Ví dụ 
<?php 
 echo nl2br(“Xin chào các bạn \n”); 
 → “Xin chào các bạn ” 
?> 
Thiết kế và lập trình Web 
186 
Đị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) 
Thiết kế và lập trình Web 
187 
Định dạng chuỗi – Chuyển đổi kiểu chữ 
 Ví dụ 
<?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 
188 
Đị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 
189 
Đị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 
190 
Đị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 
191 
Đị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 
192 
Định dạng chuỗi – Đếm ký tự 
 Ví dụ: mode = 3 
<?php 
 $str = "Hello World!"; 
 echo count_chars($str,3); 
 → !HWdelor 
?> 
Thiết kế và lập trình Web 
193 
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 
194 
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 
195 
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) 
Thiết kế và lập trình Web 
196 
– Ví dụ: 
<?php 
 echo strnatcmp(“hello”, “Hello”); → 0 
?> 
So sánh chuỗi – Không phân biệt HOA - 
thường 
Thiết kế và lập trình Web 
197 
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) 
Thiết kế và lập trình Web 
198 
Tìm kiếm và thay thế - Tìm một chuỗi trong 
chuỗi 
 Ví dụ: 
<?php 
 $email = “phuong@yahoo.com”; 
 $domain = strstr($email, “@”); 
 echo $domain; →“@yahoo.com” 
?> 
Thiết kế và lập trình Web 
199 
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 
200 
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 
201 
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) 
Thiết kế và lập trình Web 
202 
Tìm kiếm và thay thế 
 Ví dụ 
<?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 
203 
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) 
Thiết kế và lập trình Web 
204 
Kết hợp và tách chuỗi – Tách chuỗi 
 Ví dụ 
<?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 
205 
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) 
Thiết kế và lập trình Web 
206 
Kết hợp và tách chuỗi – Kết hợp chuỗi 
 Ví dụ 
<?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 
207 
Đổi ký tự 
 chr() 
– Hàm chr() có tham số truyền vào là một số trong bảng mã ASCII 
và có kết quả trả về là một ký tự tương ứng với số đó. 
– Bảng mã ASCII quy định mỗi ký tự sẽ có một số tương ứng. 
Phạm vi các số từ 0 đến 255. 
 Cú pháp 
chr(số) 
Thiết kế và lập trình Web 
208 
Đổi ký tự 
 Ví dụ 
<?php 
 echo chr(52); → 4 
 echo chr(052); → * 
 echo chr(0x52); → R 
?> 
Thiết kế và lập trình Web 
209 
12. 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 
210 
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) 
Thiết kế và lập trình Web 
211 
Kiểm tra ngày hợp lệ 
 Ví dụ: 
<?php 
 echo checkdate(11,30,2007); → TRUE 
?> 
Thiết kế và lập trình Web 
212 
Đị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) 
Thiết kế và lập trình Web 
213 
Định dạng ngày 
 Ví dụ: 
<?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 
214 
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 
215 
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 
216 
Lấy các giá trị của ngày hiện tại 
 localtime() 
– Kết quả trả về là một mảng (có khóa dạng số) trong đó 
mỗi phần tử của mảng là một thành phần của ngày hiện 
tại (giờ, phút, giây, ngày, ). Thứ tự các phần tử như 
sau: 
• [0] - giây, [1] – phút, [2] - giờ, [3] - ngày trong tháng 
• [4] - tháng trong năm (với 0 là tháng 1 – January) 
• [5] - Năm bắt đầu từ năm 1900, [6] - Ngày trong tuần 
• [7] - ngày trong năm, [8] - 0 – nếu là ngày và 1 – nếu là đêm 
– Lưu ý: tháng bắt đầu từ 0 (tháng 1) đến 11 (tháng 12) và 
ngày trong tuần bắt đầu từ 0 (Chủ nhật) đến 6 (Thứ bảy) 
Thiết kế và lập trình Web 
217 
Lấy các giá trị của ngày hiện tại 
 Cú pháp: 
localtime() 
– Ví dụ: 
<?php 
 $today = localtime(); 
 print_r($today); 
?> 
 → Array 
 ( 
 [0] => 13 [1] => 26 [2] => 13 
 [3] => 28 [4] => 10 [5] => 107 
 [6] => 3 [7] => 331 [8] => 0 
 ) 
Thiết kế và lập trình Web 
218 
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() 
Thiết kế và lập trình Web 
219 
Lấy thời gian hiện tại 
 Ví dụ 
<?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 
220 
Chuyển đổi ngày 
 cal_to_ jd() 
– Chuyển đổi một ngày sang giá trị đếm số ngày Julian (sử 
dụng khá nhiều khi làm việc với các định dạng lịch khác 
nhau). 
– Chuẩn của nó dựa trên việc đếm ngày Julian (đếm ngày 
theo Julian là đếm số ngày từ ngày bắt đầu January 1, 4713 
B.C đến ngày được đưa vào để đếm). 
– Sử dụng để đếm số ngày Julian dựa trên ngày của một hệ 
thống lịch được chọn. 
– Số ngày = ngày được truyền vào trong hàm cal_to_jd - 
January 1, 4713 B.C (January 1, 4713 B.C là ngày bắt đầu) 
Thiết kế và lập trình Web 
221 
Chuyển đổi ngày 
 Cú pháp: 
cal_to_jd(loại lịch ,tháng, ngày, năm) 
Loại lịch có thể là: 
– CAL_GREGORIAN (lịch châu Âu – thường dùng) 
– CAL_JULIAN (lịch Julian) 
– CAL_JEWISH (lịch Do Thái) 
– CAL_FRENCH (lịch Pháp) 
Thiết kế và lập trình Web 
222 
Chuyển đổi ngày 
 Ví dụ 
<?php 
 $jd = cal_to_jd(CAL_GREGORIAN, 12, 4, 2007); 
 echo " jd: ". $jd; → 2454439 
?> 
Thiết kế và lập trình Web 
223 
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) 
Thiết kế và lập trình Web 
224 
Chuyển chuỗi thời gian thành giá trị thời 
gian 
 Ví dụ 
<?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 
225 
Đổi thời gian sang đơn vị giây 
mktime() 
– Kết quả trả về là tổng số giây của thời gian nếu các tham 
số thời gian được truyền vào phù hợp, ngược lại sẽ trả về 
FALSE 
– Tổng số giây = thời gian được truyền vào trong hàm 
mktime() - January 1 1970 00:00:00 (vì thời gian bắt đầu 
là: January 1 1970 00:00:00) 
Cú pháp: 
 mktime ([hour [, minute [, second [, month [, day [, year 
[, is_dst]]]]]]]) 
Thiết kế và lập trình Web 
226 
Đổi thời gian sang đơn vị giây 
 Ví dụ 
<?php 
 echo mktime(0, 0, 0, 1, 1, 1998); 
 → 883.587.600 
 echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998)); 
 → Jan-01-1998 
 echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98)); 
 → Jan-01-1998 
?> 
Thiết kế và lập trình Web 
227 
Định dạng thời gian thành số nguyên 
 idate() 
– Kết quả trả về là thời gian hiện tại có kiểu số nguyên căn 
cứ vào ký tự định dạng 
Cú pháp: 
 idate(ký tự định dạng) 
Các ký tự định dạng: 
– d - ngày trong tháng, h - giờ (Định dạng 12 giờ), H - giờ 
(Định dạng 24 giờ), i – phút, L - trả về 1 nếu là năm 
nhuận, ngược lại trả về 0, m – tháng, s – giây, w - thứ 
trong tuần (chủ nhật (Sunday) =0), y - năm (1 hoặc 2 ký 
số), Y - năm (4 ký số), z - ngày trong năm,  
Thiết kế và lập trình Web 
228 
Định dạng thời gian thành số nguyên 
 Ví dụ 
<?php 
 // in năm đầy đủ (4 ký tự) 
 echo idate(‘Y’); 
 → 2008 
 echo idate(‘L’); 
 → 1 (vì năm 2008 là năm nhuận) 
?> 

File đính kèm:

  • pdfbai_giang_thiet_ke_va_lap_trinh_web_bai_5_php_co_ban_vien_co.pdf