Tải bản đầy đủ (.pdf) (32 trang)

Bài giảng Công nghệ Web và Ứng dụng (Nguyễn Hoàng Tùng) Phần 1

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 (1.61 MB, 32 trang )

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:


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

20/08/2012

Công nghệ Web và Ứng dụng

2


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.
20/08/2012

Công nghệ Web và Ứng dụng

3


Chuỗi ký tự
Ví dụ về chuỗi:
$str = "Xồ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."
";
?>

20/08/2012

Công nghệ Web và Ứng dụng


4


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

20/08/2012

Công nghệ Web và Ứng dụng

5


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])

20/08/2012

Công nghệ Web và Ứng dụng


6


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)

VD:
$str = "I'dont know \'every thing\'";
echo addslashes($str);
//Output: I\'dont know \\\'every thing\\\'
?>
20/08/2012

Công nghệ Web và Ứng dụng

7


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\'
?>

20/08/2012

Công nghệ Web và Ứng dụng

8


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
20/08/2012

Công nghệ Web và Ứng dụng

9


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 tồn vẹn
của tập tin,…

VD:
$str = 'Lớp DH8TH';

echo md5($str);
//Output: 39a03156031b6a3ecf5dc5279ab3a77c
?>

20/08/2012

Cơng nghệ Web và Ứng dụng

10


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, ngồ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ố,…
VD:
$str = 'Lớp DH8TH';
echo sha1($str);
//Output: a6fc5d0530e75a5288e4ff27b284741945677158
?>
20/08/2012

Công nghệ Web và Ứng dụng

11



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

20/08/2012

Công nghệ Web và Ứng dụng

12


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)

20/08/2012

Công nghệ Web và Ứng dụng

13



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.

Ví dụ:
$today
$today
$today
$today
$today
$today
$today
?>

=
=
=
=
=
=
=

date("F j, Y, g:i a"); //January 10, 2011, 1:48 am
date("d.m.y");
//10.01.11
date("j/n/Y");
//10/1/2011
date("dmY");

//10012011
date("h-i-s, j-m-y"); //01-48-26, 10-01-11
date("D M j G:i:s Y"); //Mon Jan 10 1:48:26 2011
date("H:i:s");
//01:48:26

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

20/08/2012

Công nghệ Web và Ứng dụng

14


Các hàm về thời gian
array getdate([int $timestamp])
Trả về một array thông tin về thời gian hiện tại.
Array(
[seconds]
[minutes]
[hours]
[mday]
[wday]
[mon]
[year]
[yday]
[weekday]
[month]
[0]

)

=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>

41
2
2
10
1
1
2011
9
Monday
January
1294599761

<? $now = getdate(); echo $now['year'] //Output: 2011 ?>
20/08/2012

Công nghệ Web và Ứng dụng


15


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.

20/08/2012

Công nghệ Web và Ứng dụng

16


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.
<? $now = time(); echo $now; //Output: 1294601902 ?>


20/08/2012

Công nghệ Web và Ứng dụng

17


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

20/08/2012

Công nghệ Web và Ứng dụng

18


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
20/08/2012

value
Công nghệ Web và Ứng dụng

19


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 = array(10);
for($i=0; $i<10; $i++)
$arr[$i] = rand(0,100);
for($i=0; $i<10; $i++)
echo($i + 1)." - ".$arr[$i]."
";


?>

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

Công nghệ Web và Ứng dụng

20


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

20/08/2012

Công nghệ Web và Ứng dụng

21



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.

20/08/2012

Công nghệ Web và Ứng dụng

22


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.

20/08/2012

Công nghệ Web và Ứng dụng

23


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

20/08/2012

Cơng nghệ Web và Ứng dụng

24



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.
$arr = array(2,4,9,2,3,5,8,1);
$child = array();

//Mảng động

while(list($k,$v) = each($arr))
if($v % 2 != 0)
$child[] = $v;
for($i=0; $iecho $child[$i]."
";

//In mảng

?>

20/08/2012

Công nghệ Web và Ứng dụng

25



×