Tải bản đầy đủ (.pptx) (39 trang)

Bài giảng mã nguồn mở chương 4

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 (402.28 KB, 39 trang )

Môn Các Hệ Thống Mã Nguồn Mở

Chương 4 :

Ngôn ngữ kịch bản php cơ bản
Giảng viên : ThS. Nguyễn Minh Thành
Email :

1


Môn Các Hệ Thống Mã Nguồn Mở

Nội Dung
1.
2.
3.
4.
5.
6.

Giới thiệu về PHP
Chuỗi kí tự
Dữ liệu Ngày
Mảng
Phương thức nhận dữ liệu POST & GET
Hàm

2



Môn Các Hệ Thống Mã Nguồn Mở

3

Giới Thiệu về PHP
I.1 Lịch sử : PHP (Hypertext Preprocessor) là ngôn ngữ script trên server được thiết kế để dễ dàng xây dựng các trang Web

động.
Ngôn ngữ PHP ra đời năm 1994 Rasmus Lerdorf (1968, GreenLand) sau đó được phát triển bởi nhiều người trải qua nhiều
phiên bản. Phiên bản đang phổ biến là PHP 5.0 đã được công bố 7/2004.Phiên bản mới nhất là 5.4.3

Ưu điểm :Mã nguồn mở (open source code)

- Miễn phí, download dễ dàng từ Internet.
- Ngôn ngữ rất dễ học, dễ viết.

- Mã nguồn không phải sửa lại nhiều khi viết chạy cho các hệ điều hành từ Windows, Linux, Unix
Tên gọi ban đầu :'Personal Home Page Tools’
Xem : />

Môn Các Hệ Thống Mã Nguồn Mở

Viết Script PHP


Script PHP có thể nhúng trược tiếp trong các thẻ HTML.



Được đặt trong cặp thẻ


….

?>

<html>
<body>
echo “Chào bạn đến với PHP”;
?>
</body>
</html>

4


Môn Các Hệ Thống Mã Nguồn Mở

Quá Trình Thông Dịch file PHP

5


Môn Các Hệ Thống Mã Nguồn Mở

Kiểu dữ liệu – Hằng – Biến
a- Kiểu dữ liệu:
Integer, Double, Boolean, String, Array và Object


b. Khai báo biến:
$tên_biến = giá_trị;

$tên_mảng = array();
$tên_object= new tên_lớp();

c. Khai báo hằng :
define(“tên_hằng”, giá_trị);
Ví dụ :

define(“PI”,3.14); $r=4;
echo “Diện tích hình tròn :’.$r*$r*PI;
?>

6


Môn Các Hệ Thống Mã Nguồn Mở

Kiểu dữ liệu – Hằng – Biến
Các hằng được xây dựng sẵn

Kiểm tra nội dung biến



__LINE__

isset($varname)




__FILE__

empty($varname)



E_ALL

is_int ($varname)



E_NOTICE

is_array ($varname)





is_float ($varname)

Chuyển kiểu dữ liệu

is_null ($varname)

$newint = (int) $var1;


is_numeric ($varname)

$newfloat = (float) $var1;

is_string ($varname)

$newstring = (string) $var1;
Xuất thông tin biến
var_dump($myvariable);

Xuất dữ liệu
echo $myvariable;
printf $myvariable;

7


Môn Các Hệ Thống Mã Nguồn Mở

Các phép toán
a.

Phép gán : $biến = biểu_thức;

b.

Các phép toán số học : +,-,*,/,%

c.


Các phép toán so sánh : ==, !=, >=,<=,>,<

d.

Các phép toán kết hợp : ++,--,+=,-=,*=,/=

e.

Các phép toán logic : !, &&, ||

f.

Toán tử tam phân : (điều_kiện ? giá_trị_1 : giá_trị_2)

g.

Phép ghép chuỗi : . (dấu chấm)

h.

Toán tử error : @, ngăn không cho thông báo lỗi.
Ví dụ : $a=10; $b=0; $c=@$a/$b

8


Môn Các Hệ Thống Mã Nguồn Mở

Một số ví dụ dữ liệu kiểu số



Ví dụ 1 :
$var1 = “1”;
$var2 = 2;
$total = $var1 + $var2;



Ví dụ 2 :
$var1 = “x”;
$var2 = 2;
$total = $var1 + $var2;



Ví dụ 3
$var1 = “2,000”;
$var2 = 2;
$total = $var1 + $var2;

9


Môn Các Hệ Thống Mã Nguồn Mở

Các hàm trên dữ liệu số






Sqrt : căn bậc 2
Ceil : làm tròn lên
Floor : làm tròn xuống
Number_format : định dạng số

$x=12345678.456789;
echo $x."
";
echo number_format($x)."
";
echo number_format($x,2)."
";
echo number_format($x,2,",",".")."
";
?>

kết quả:
12345678.4568
12,345,678
12,345,678.46
12.345.678,46







pow : lũy thừa
rand : tạo số ngẫu nhiên
round : làm tròn

Max, min : lấy giá trị lớn, nhỏ
Abs : trị tuyệt đối

10


Môn Các Hệ Thống Mã Nguồn Mở

Các câu lệnh điều khiển
a- Câu lệnh if. Các cú pháp thông dụng:

- if(điều_kiện) { /* nhóm lệnh */}
- if(điều_kiện) { /* nhóm lệnh1 */} else { /* nhóm lệnh2 */}

- if(điều_kiện) { ….. }
elseif(điều_kiện_1) {….}
elseif(điều_kiện_2) {….}
……….
elseif(điều_kiện_n) {….}
else {/* nhóm lệnh cuối cùng */}

11


Môn Các Hệ Thống Mã Nguồn Mở

Các câu lệnh điều khiển (tt)
b. Câu lệnh switch
Cú pháp :


switch($biến){
case giá_trị_1: nhóm lệnh 1 ; break;
case giá_trị_2: nhóm lệnh 2 ; break;

case giá_trị_n: nhóm lệnh n ; break;
default : nhóm_lệnh_n+1;
}

Lưu ý : giá trị của $biến phải là đếm được, rời rạc

12


Môn Các Hệ Thống Mã Nguồn Mở

13

Các câu lệnh điều khiển (tt)
Trong PHP có 4 câu lệnh lặp, trong đó foreach có cách sử dụng đặc sắc so với các NNLT khác. Muốn thoát khỏi vòng lặp : sử
dụng lệnh exit

c- Câu lệnh while :
Cú pháp :

while(điều_kiện_lặp) { /* nhóm lệnh */}

d- Câu lệnh do … while :
Cú pháp :

do { /* nhóm lệnh */} while(điều_kiện_lặp)


e- Câu lệnh for(;;) :
Cú pháp :

for(khởi_tạo; điều_kiện_lặp; tăng_giảm)
{ /* nhóm lệnh */}

f- Câu lệnh foreach : duyệt qua tất các các phần tử của một mảng, nhất là mảng kết hợp.


Môn Các Hệ Thống Mã Nguồn Mở

Chuỗi Kí Tự
1- Khai báo biến
$str =“Trường cao đẳng CNTT TpHCM”;
$str=<<
$str=<<
….

….

ENDSTRING;



.

ENDOFTEXT;

Phân biệt ngoặc đơn và kép :

-

Chuỗi sử dụng ngoặc đơn được lưu trữ như một chuỗi bình thường.
Chuỗi sử dụng ngoặc kép được lượng giá các biến và kí tự đặc biệt trong chuỗi trước khi lưu trữ.

$number = 10;
$string1 = “There are ‘$number’ people in line.”;
$string2 = ‘There are “$number” people waiting.’;
echo $string1,”\n”;
echo $string2;

14


Môn Các Hệ Thống Mã Nguồn Mở

15

Chuỗi Kí Tự
2- Các hàm về kiểu chuổi ký tự:
- chop(), trim(), ltrim()
- nl2br(): định dạng HTML, biến ký tự \n thành “

- addslashes() : để biến một chuổi có thể lưu trữ trong CSDL, ví dụ: dấu “ -> \”
- substr($str,$pos,$len) : tách một chuổi con từ một chuổi

- strpos($str,$sub) : vị trí chuổi $sub trong chuổi $str
- str_replace($rep,$with,$str) : thay $rep bằng $with trong $str
- explode($separator,$str) : tách chuổi $str thành các chuổi con dựa trên dấu phân cách $separator và lưu kết quả vào mảng,

~ phương thức split của JavaScript. Ngược lại là hàm implode hay join.

- str_repeat(“str”,n) : lặp lại str n lần
- str_chr(“str”,”chr”) : trả về 1 chuỗi bắt đầu từ kí tự chr trong str.
- stristr(“str”,”chr”) : giống str_chr nhưng không phân biệt hoa thường
- strlen(“str”) : chiều dài chuỗi str
- strrev(“str”) : đảo ngược chuỗi str


Môn Các Hệ Thống Mã Nguồn Mở

16

Chuỗi Kí Tự (tt)
Ví dụ: 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.

$str=“

Thầy

Nguyễn Minh Thành “;

echo “
Độ dài chuổi ban đầu “.strlen($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 ““Độ dài sau khi chuẩn hóa “.strlen(normalize($str));
?>


Môn Các Hệ Thống Mã Nguồn Mở

Chuỗi Kí Tự (tt)
$str=“Nguyễn Minh Thành,Hồ Ngọc Tú,Võ Thị Hà Giang,Võ Tòng";
$arr=array();
$arr=explode(",",$str);
echo "

Danh sách giáo viên:

";
foreach($arr as $key=>$value) echo ($key+1)."-".$value."
";
?>

17


Môn Các Hệ Thống Mã Nguồn Mở

Dữ Liệu Ngày – Giờ


ĐỊnh dạng ngày
$mydate = date(“format”,$timestamp);




Lấy ngày hệ thống
$today = date(“Y/m/d”);



Lấy giờ hệ thống
$today = time(); hoặc $today = strtotime(“today”);



Tạo một ngày chỉ định
$importantDate = mktime(h,m,s,mo,d,y);



Ví dụ : $importantDate = mktime(0,0,0,1,15,2003);
Hoặc $importantDate = strtotime(“January 15 2003”);

18


Môn Các Hệ Thống Mã Nguồn Mở

Dữ Liệu Ngày – Giờ

19



Môn Các Hệ Thống Mã Nguồn Mở

Mảng Một Chiều
1. Khai báo :
$n=100;
$arr1

= array($n);

$arr2

= array(giá_trị_1, giá_trị_2, .., giá_trị_n);

$arr3

= range(100,900);// range(“z”, “a”);

$arr4 = arrr(hoten=>“Minh Thành”, quequan=>“HCM”,
tuoi=>27;IQ=“Rất cao”); // mảng kết hợp

Câu lệnh lặp foreach rất hiệu quả khi duyệt mảng kết hợp

20


Môn Các Hệ Thống Mã Nguồn Mở

Mảng Một Chiều (tt)
2- Sử dụng


-Truy cập một phần tử mảng : $arr[$key]
$key có ý nghĩa rộng hơn Index, dùng tham chiếu đến một phần tử của mảng.
Ví dụ 1: Tạo mảng gồm 10 phần tử là các số nguyên lấy ngẫu nhiên trong [0,100]. Khởi tạo $key là 0.

$arr = array(10);
for($i=0; $i<10; $i++) $arr[$i] = rand(0,100);
for($i=0; $i<10; $i++) echo ($i+1).”-”.$arr[$i].”
”;
?>

21


Môn Các Hệ Thống Mã Nguồn Mở

Mảng Một Chiều (tt)
-Sử dụng foreach
foreach($arr as $key=>$value){
echo $key .“,”;
echo $value.”
”;
}

Có thể thay thế key và value bằng tên khác, chẳng hạn $k=>$v, miễn rẳng đảm bảo khai báo :
$chỉ_số=>$giá_trị (của phần tử mảng)

22


Môn Các Hệ Thống Mã Nguồn Mở


Mảng Một Chiều (tt)
-Truy cập một phần tử mảng : sử dụng hàm each()
while($item=each($arr)){
echo $item[“key”] .”,”;
echo $item[“value”]. “
”;
}

Hàm each() trả về phần tử kế tiếp của mảng. ~ hàm next()

- Truy cập một phần tử mảng : sử dụng hàm list()
while(list($k,$v)=each($arr)){
echo $k .”,”;
echo $v. “
”;
}

Hàm list($k,$v) tách cặp giá trị (key, value) của phần tử có “chỉ số” là $key ra hai biến $k và $v

23


Môn Các Hệ Thống Mã Nguồn Mở

Các Hàm Về Mảng
-Hàm count(), sizeof() : trả về kích thước của mảng
+ current()/end() : trả về phần tử đầu tiên/ cuối cùng của mảng
+ prev() / next() : trả về phần tử liền trước / kế kiếp
+ sort() , asort(), rsort(), arsort(): sắp xếp mảng theo value của phần tử
+ ksort(), krsort() :sắp xếp mảng theo key của phần tử

-


is_array() kiểm tra mảng

-

Print_r() hoặc var_dump(): xem nội dung mảng

-

Unset($arr[$key]) : xóa phần tử $key khỏi mảng

-

array_slice($arrayname,n1,n2) : ngắt mảng

-

array_merge($array1,$array2,...); : trộn mảng

-

array_sum($array) : tính tổng

-

array_unique($names) : loại trùng

-

array_flip($testarray) : hoán đổi key và value


24


Môn Các Hệ Thống Mã Nguồn Mở

25

4- Mảng động : Cho mảng gồm 10 số tự nhiên,tạo một mảng con chứa những số lẻ của mảng này, In ra mảng con này.

$arr=array(2,4,9,2,3,5,8,1);
$child=array(); // sử dụng mảng động
while(list($k,$v)=each($arr)) if($v%2!=0) $child[]=$v;

echo "So phan tu cua mang con ".count($child)."
";
// In ra mảng con gồm các số lẻ từ mảng $arr
for($i=0;$i"
?>


×