CÁC HÀM PHP THƯỜNG DÙNG

Giảng viên phụ trách:

Nguyễn Hoàng Tùng

Bộ môn Tin học

Email: nhoangtung@agu.edu.vn

Nội dung chính của slide này

Các hàm về chuỗi

Các hàm bảo mật trong chuỗi

Hàm ngày, giờ

Các hàm về mảng

Upload file lên server

2 20/08/2012 Công nghệ Web và Ứng dụng

Chuỗi ký tự

Khai báo biến:

$str = "chuỗi ký tự";

Các hàm về kiểu chuỗi ký tự: (chỉ nêu tên)

ltrim(), rtrim(), trim(): Xóa khoảng trắng bên trái, phải, cả 2.

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.

substr(): Tách một chuỗi con từ một chuỗi.

strpos(): Xác định vị trí xuất hiện của chuỗi trong một chuỗi.

str_replace(): Thay thế chuỗi.

explode(): Tách chuỗi thành các chuỗi con.

implode(): Ngược lại với hàm explode(), dùng để ghép chuỗi.

3 20/08/2012 Công nghệ Web và Ứng dụng

Chuỗi ký tự

Ví dụ về chuỗi:

$str = "Xoài, Mận, Bưởi, Sầu riêng"; $arr = array(); //Mảng động $arr = explode(", ",$str); echo "

Danh sách trái cây:

"; foreach($arr as $key=>$value)

echo($key + 1)." - ".$value."
";

4 20/08/2012 Công nghệ Web và Ứng dụng

Nội dung chính của slide này

Các hàm về chuỗi

Các hàm bảo mật trong chuỗi

Hàm ngày, giờ

Các hàm về mảng

Upload file lên server

5 20/08/2012 Công nghệ Web và Ứng dụng

Các hàm bảo mật trong chuỗi

string addslashes(string $str)

string stripslashes(string $str)

string htmlspecialchars(string $str [, int $quote_style [, string $charset]])

string md5(string $str [, bool $raw_output])

string sha1(string $str [, bool $raw_output])

6 20/08/2012 Công nghệ Web và Ứng dụng

Các hàm bảo mật trong chuỗi

string addslashes(string $str)

Thêm ký tự backslash (\) phía trước các ký tự ‘ " \ NUL trong chuỗi $str  Thường dùng trong các câu lệnh SQL để tránh xảy ra lỗi khi lưu và lấy dữ liệu từ CSDL.

Các hàm tương tự:

string quotemeta(string $str)

string addcslashes(string $str, string $charlist)

$str = "I'dont know \'every thing\'"; echo addslashes($str); //Output: I\'dont know \\\'every thing\\\'

VD:

7 20/08/2012 Công nghệ Web và Ứng dụng

Các hàm bảo mật trong chuỗi

string stripslashes(string $str)

Xóa bỏ ký tự backslash (\) xuất hiện trong chuỗi $str (ngược lại với hàm addslashes()).

Hàm tương tự:

string stripcslashes(string $str)

VD:

$str = "I\'dont know \\\'every thing\\\'"; echo stripslashes($str); //Output: I'dont know \'every thing\'

8 20/08/2012 Công nghệ Web và Ứng dụng

Các hàm bảo mật trong chuỗi

string htmlspecialchars(string $str [, int $quote_style [, string $charset]])

Chuyển đổi các ký tự đặc biệt & ' " < > trong chuỗi $str thành các thực thể HTML (Convert special characters to HTML entities).

Khi đó:

&  &

"  "

// khi không có ENT_NOQUOTES.

'  ' // khi có ENT_QUOTES.

<  <

>  >

Ngược lại: htmlspecialchars_decode

9 20/08/2012 Công nghệ Web và Ứng dụng

Các hàm bảo mật trong chuỗi

string md5(string $str [, bool $raw_output])

MD5: Message Digest 5 là một hàm băm mật mã được sử dụng phổ biến với giá trị băm dài 128 bit.

Thường dùng để mã hóa mật khẩu, kiểm tra tính toàn vẹn của tập tin,…

VD:

$str = 'Lớp DH8TH'; echo md5($str); //Output: 39a03156031b6a3ecf5dc5279ab3a77c

10 20/08/2012 Công nghệ Web và Ứng dụng

Các hàm bảo mật trong chuỗi

string sha1(string $str [, bool $raw_output])

Thuật toán SHA-1 (Secure Hash Algorithm 1) tạo ra chuỗi mã băm có chiều dài cố định 160 bit từ chuỗi bit dữ liệu đầu vào $str có chiều dài tùy ý.

Được sử dụng phổ biến và có công dụng như MD5, ngoài ra SHA-1 còn được sử dụng rất nhiều trong thương mại điện tử, tạo chữ ký số,…

$str = 'Lớp DH8TH'; echo sha1($str); //Output: a6fc5d0530e75a5288e4ff27b284741945677158

VD:

11 20/08/2012 Công nghệ Web và Ứng dụng

Nội dung chính của slide này

Các hàm về chuỗi

Các hàm bảo mật trong chuỗi

Hàm ngày, giờ

Các hàm về mảng

Upload file lên server

12 20/08/2012 Công nghệ Web và Ứng dụng

Các hàm về thời gian

string date(string $format [, int $timestamp])

array getdate([int $timestamp])

bool checkdate(int $month, int $day, int $year)

int time(void)

13 20/08/2012 Công nghệ Web và Ứng dụng

Các hàm về thời gian

string date(string $format [, int $timestamp])

Trả về thời gian hiện tại theo định dạng $format.

//10.01.11

//10/1/2011

//10012011

//01:48:26

$today = date("F j, Y, g:i a"); //January 10, 2011, 1:48 am $today = date("d.m.y"); $today = date("j/n/Y"); $today = date("dmY"); $today = date("h-i-s, j-m-y"); //01-48-26, 10-01-11 $today = date("D M j G:i:s Y"); //Mon Jan 10 1:48:26 2011 $today = date("H:i:s");

Ví dụ:

Xem chi tiết các cú pháp định dạng trong PHP Manual.

14 20/08/2012 Công nghệ Web và Ứng dụng

Các hàm về thời gian

array getdate([int $timestamp])

=> 41 => 2 => 2 => 10 => 1 => 1 => 2011 => 9 => Monday => January => 1294599761

[seconds] [minutes] [hours] [mday] [wday] [mon] [year] [yday] [weekday] [month] [0]

Trả về một array thông tin về thời gian hiện tại. Array( )

15 20/08/2012 Công nghệ Web và Ứng dụng

Các hàm về thời gian

bool checkdate(int $month, int $day, int $year)

Kiểm tra ngày, tháng, năm đưa vào có hợp lệ hay không?

var_dump(checkdate(2, 29,2011)); //False var_dump(checkdate(4, 18,1986)); //True

Giới hạn của tham số:

Tháng ($month) từ 1 đến 12,

Ngày ($day) từ 1 đến 31, phụ thuộc theo tháng,

Năm ($year) từ 1 đến 32767.

16 20/08/2012 Công nghệ Web và Ứng dụng

Các hàm về thời gian

int time(void)

Trả về thời gian hiện tại được tính bằng giây kể từ 0:0:0 1/1/1970 GMT.

17 20/08/2012 Công nghệ Web và Ứng dụng

Nội dung chính của slide này

Các hàm về chuỗi

Các hàm bảo mật trong chuỗi

Hàm ngày, giờ

Các hàm về mảng

Upload file lên server

18 20/08/2012 Công nghệ Web và Ứng dụng

Mảng

Khai báo:

$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”);

key

value

19 20/08/2012 Công nghệ Web và Ứng dụng

Mảng

Sử dụng:

Truy xuất 1 phần tử trong mảng: $arr[$key]

 $key có ý nghĩa rộng hơn index, dùng tham chiếu đến 1

phần tử của mảng.

Ví dụ: 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[$i] = rand(0,100);

$arr = array(10); for($i=0; $i<10; $i++) for($i=0; $i<10; $i++)

echo($i + 1)." - ".$arr[$i]."
";

Xóa 1 phần tử trong mảng: unset($arr[$key])

20 20/08/2012 Công nghệ Web và Ứng dụng

Mảng

Các hàm về mảng:

foreach(): truy xuất các phần tử của mảng

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ị.

21 20/08/2012 Công nghệ Web và Ứng dụng

Mảng

Các hàm về mảng:

each(): truy xuất các phần tử của mảng

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. Từ khóa key

và value trong trường hợp này phải giữ nguyên.

22 20/08/2012 Công nghệ Web và Ứng dụng

Mảng

Các hàm về mảng:

list(): truy xuất các phần tử của mảng

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 tương ứng.

23 20/08/2012 Công nghệ Web và Ứng dụng

Mảng

Các hàm về mảng:

count(), sizeof(): Trả về kích thước của mảng.

current(), end(): Trả về phần tử hiện tại, cuối cùng của mảng.

prev(), next(): Trả về phần tử liền trước, kế kiếp.

sort(): Sắp xếp mảng theo value của phần tử.

ksort(): Sắp xếp mảng theo key của phần tử.

is_array(): Kiểm tra 1 biến có phải là mảng (trả về 1và 0).

...

24 20/08/2012 Công nghệ Web và Ứng dụng

Mảng

Mảng động:

Ví dụ: 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.

//Mảng động

if($v % 2 != 0)

$child[] = $v;

//In mảng

$arr = array(2,4,9,2,3,5,8,1); $child = array(); while(list($k,$v) = each($arr)) for($i=0; $i";

25 20/08/2012 Công nghệ Web và Ứng dụng

Nội dung chính của slide này

Các hàm về chuỗi

Các hàm bảo mật trong chuỗi

Hàm ngày, giờ

Các hàm về mảng

Upload file lên server

26 20/08/2012 Công nghệ Web và Ứng dụng

Upload file lên server

enctype="multipart/form-data">

Form upload:

Lưu ý:

Luôn sử dụng phương thức POST.

Luôn sử dụng enctype="multipart/form-data" trong thẻ FORM.

File upload:

27 20/08/2012 Công nghệ Web và Ứng dụng

Upload file lên server

Biến $_FILES[]:

$_FILES['myfile']['name']

• Tên file đã được upload.

$_FILES['myfile']['type']

• Kiểu file đã được upload, vd: image/gif, image/jpeg,...

$_FILES['myfile']['size']

• Kích thước tập tin đã được upload (tính bằng bytes).

$_FILES['myfile']['tmp_name']

• Vị trí file được lưu trữ tạm trên server.

$_FILES['myfile']['error']

• Mã lỗi của việc upload (0 = Upload thành công).

28 20/08/2012 Công nghệ Web và Ứng dụng

Upload file lên server

$fileupload))

echo "Upload file thành công!";

echo "Upload file không thành công!";

$fileupload = $dir . $_FILES['myfile']['name']; if(move_uploaded_file($_FILES['myfile']['tmp_name'], { } else{ }

echo "Vui lòng chọn file để upload!";

Xử lý:

$dir = "data/"; //Upload vào thư mục data if($_FILES['myfile']['name'] != "") { } else{ }

29 20/08/2012 Công nghệ Web và Ứng dụng

Upload file lên server

Upload nhiều file:

enctype="multipart/form-data">

Files upload:
File 1:
File 2:
File 3:

30 20/08/2012 Công nghệ Web và Ứng dụng

Upload file lên server

$tmp_name = $_FILES['myfile']['tmp_name'][$key]; $name = $_FILES['myfile']['name'][$key]; move_uploaded_file($tmp_name, "data/$name");

if($error == 0) { }

Xử lý upload nhiều file:

foreach($_FILES['myfile']['error'] as $key => $error) { }

31 20/08/2012 Công nghệ Web và Ứng dụng

Giải đáp thắc mắc

32 20/08/2012 Công nghệ Web và Ứng dụng