Session 2 PHP co ban tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩnh vực kinh tế...
Trang 1PHP Cơ bản
Trang 2Nội dung bài học
Trang 3Mảng trong PHP
do vậy nó rất dễ để truy xuất.
v Mảng số (Numeric array) - Mỗi giá trị trong mảng được gắn với một
một giá trị số nguyên Mặc định giá trị đầu tiên được gắn key bắt đầu là 0
v Mảng kết hợp (Associative array) –
key là một giá trị chuỗi
v Mảng nhiều chiều (Multidimensional array)
mảng một chiều
Cho phép lưu trữ nhiều giá trị dữ liệu trong các phần tử của mảng.
Mỗi phần tử của mảng được đánh chỉ mục bằng số hay bằng chuỗi,
Mỗi giá trị trong mảng được gắn với một key là một giá trị số nguyên Mặc định giá trị đầu tiên được gắn key bắt đầu là 0
– Mỗi giá trị trong mảng được gắn với một
(Multidimensional array) – Một mảng chứa một hoặc nhiều
Trang 5Mảng số
v Để truy cập vào 1 phần tử, đặt chỉ số trong [ ]
v Có thể sử dụng chỉ số không liên tiếp
$a[0] = "Xin";
$a[] = "Chào"; // $a[1]
$a[] = "Bạn"; // $a[2]
Truy xuất phần tử trong mảng số
Để truy cập vào 1 phần tử, đặt chỉ số trong [ ]
$names = array("Peter","Quagmire","Joe");
" and " $names[2] " are " $names[0] "'s neighbors";
Có thể sử dụng chỉ số không liên tiếp
Có thể thêm phần tử vào cuối mảng bằng cách bỏ chỉ số:
Trang 8Mảng nhiều chiều
$products = array(
array("a","b", 100), array("c","d", 200), array("e","f", 300) );
for($row=0; $row<3; $row++){
for($col=0; $col<3; $col++){
echo $products[$row][$col]."
} }
$families = array( "Griffin"=>array ("Peter",
"Quagmire"=>array( "Glenn"
"Brown"=>array("Cleveland", "Loretta", "Junior") ); echo "Is " $families['Griffin'][2] " a part of the Griffin family?";
Được coi là mảng của các mảng một chiều
Ví dụ tạo và sử dụng mảng hai chiều
Trang 9v array_shift(tên_mảng): xóa phần tử đầu tiên tên_mảng.
v array_pop(tên_mảng): xóa phần tử cuối cùng của tên_mảng.
: trả về số phần tử của một mảngtrả về true nếu $biến là một mảng ngược lại trả về
sắp xếp mảng tăng dần
sắp xếp mảng giảm dần
sắp xếp mảng Associative array (tăng dần).
sắp xếp mảng Associative array (giảm).
in_array(giá trị tìm, $mảng): Tìm một giá trị có trong mảng không
: xóa phần tử đầu tiên tên_mảng
: xóa phần tử cuối cùng của tên_mảng
Trang 11Một số hàm về mảng
<?php
$cart [0] = "Joe"; $cart [1] = "Peter"; $cart [2] = "Alex";
echo $value." = ".$cart[$value]."<br/>";
}
?>
array_keys($tên_mảng)trả về một mảng có chứa các key.
$cart [0] = "Joe"; $cart [1] = "Peter"; $cart [2] = "Alex";
as $value){
echo $value." = ".$cart[$value]."<br/>";
Trang 12Hàm trong PHP
thường lặp đi lặp lại trong ứng dụng
n Để trả về giá trị, trong thân hàm sử dụng lệnh sau:
tên_hàm(giá_trị_1, giá_trị_2, , giá_trị_N);
function tên_hàm([$tham_số_1, $tham_số_2,…, $tham_số_N]) {
//các lệnh trong thân hàm
}
Hàm do người dùng định nghĩa cho phép bạn xử lý những tác vụ
thường lặp đi lặp lại trong ứng dụng
Để trả về giá trị, trong thân hàm sử dụng lệnh sau:
tên_hàm(giá_trị_1, giá_trị_2, , giá_trị_N);
tên_hàm([$tham_số_1, $tham_số_2,…, $tham_số_N]) {
Trang 13Hàm trong PHP
v Tham số không có giá trị mặc định => bắt buộc phải truyền giá trị khi gọi hàm
v Tham số có giá trị mặc định: Khi gọi hàm, nếu không truyền giá trị cho tham số này, nó sử dụng giá trị mặc định làm giá trị
v Để truyền tham chiếu: thêm kí tự & vào trước tham số
function hi($a) { return $a "<br/>"; }
echo hi("heLLo");
function hi($a="Hello") { return $a; }
echo hi(); // Hello
function hi( & $a) { $a = $a + 1; }
$a = 1;
hi($a);
echo $a ; // result: a = 2;
Tham số không có giá trị mặc định => bắt buộc phải truyền giá trị khi gọi hàm
Tham số có giá trị mặc định: Khi gọi hàm, nếu không truyền giá trị cho tham số này, nó sử dụng giá trị mặc định làm giá trị
vào trước tham số
hi($a) { return $a "<br/>"; }
hi($a="Hello") { return $a; }
a) { $a = $a + 1; }echo $a ; // result: a = 2;
Trang 14Hàm trong PHP
của một biến ở bên ngoài hàm mà không phải dùng đến tham số.
function birthday() {
}
Biến cục bộ: Là biến được khai báo bên trong một hàm.
, nếu bên trong hàm muốn truy xuất dữ liệu của một biến ở bên ngoài hàm mà không phải dùng đến tham số.
//Khai báo truy xuất tới biến toàn cục //biến có phạm vi cục bộ
Trang 15Hàm trong PHP
n Hàm function_exist(func_name): dùng để kiểm tra sự tồn tại của
một hàm Trả về TRUE nếu hàm đã được định nghĩa ngược lại trả về FALSE.
echo $test; // False
dùng để kiểm tra sự tồn tại của một hàm Trả về TRUE nếu hàm đã được định nghĩa ngược lại trả về
$test = function_exists("hhh");
Trang 16Phạm vi của biến trong PHP
v Có phạm vi trong toàn bộ chương trình
v Có thể truy xuất được từ bất cứ đâu trong chương trình
v Phải được khai báo tường minh với từ khóa
function birthday() {
}
Phạm vi của biến trong PHP
Có phạm vi trong toàn bộ chương trình
Có thể truy xuất được từ bất cứ đâu trong chương trình
Phải được khai báo tường minh với từ khóa global trong chương trình
//Khai báo truy xuất tới biến toàn cục // phạm vi toàn cục
//biến có phạm vi cục bộ
Trang 17Hàm date() trong PHP
Hàm date(): được dùng để định dạng thời gian và/hoặc ngày tháng.
Bắt buộc Chỉ ra định dạng của timestamp
: Ngày của tháng (d: từ 01->31, j: từ 1->31): Thứ trong tuần (Sun, Mon,…; 0 (Chủ nhật), 1, 2,…)
>Dec; m: 1->12; F: January -> December): Năm (1999, 2003 hoặc 99, 03)
Tùy chọn Chỉ ra timestamp Mặc định là ngày giờ hiện tại
(format,[timestamp])
Trang 19"seconds" Numeric representation of seconds
"minutes" Numeric representation of minutes
"hours" Numeric representation of hours
"mday" Numeric representation of the day of the month
"wday" Numeric representation of the day of the week
"mon" Numeric representation of a month
"year" A full numeric representation of a year, 4 digits
"yday" Numeric representation of the day of the year
"weekday" A full textual representation of the day of the week
Hàm date(): được dùng để định dạng thời gian và/hoặc ngày tháng.
$timestamp = time()])
0 to 59
0 to 59
0 to 23 Numeric representation of the day of the month 1 to 31 Numeric representation of the day of the week
0 (for Sunday) through 6 (for Saturday)
Trang 20n explode ( string $delimiter , string $string
chuỗi, mỗi chuỗi con được tách ra từ $string
] ): Trả về chuỗi $str đã loại bỏ các kí tự trắng ] ): Trả về chuỗi $str đã loại bỏ các kí tự trắng ] ): Trả về chuỗi $str đã loại bỏ các kí tự trắng
$str với tất cả các kí tự chữ được chuyển
$str với tất cả các kí tự chữ được chuyển
$str được in hoa các kí tự đầu mỗi từ
$string [, int $limit ] ): trả về một mảng các
string $delimiter là giới hạn để tách
Trang 21Hàm xử lý chuỗi
– Nếu chỉ có một tham số, number được định dạng không có phần thập phân, nhưng
có dấu ‘,’ dùng để ngăn cách giữa các nhóm số – Nếu có hai tham số, number được định dạng có phần thập phân, kí tự chấm (.)
dùng để ngăn cách phần thập phân và kí tự phẩy(,) dùng ngăn cách giữa các nhóm số.
– Nếu dùng cả 4 tham số, number được định dạng: dùng $
dấu chấm (.) thập phân, dùng $thousands_seperator
ngăn cách giữa các nhóm số.
string $dec_seperator, string $thousands_seperator
string number_format ( float $number
dùng để dịnh dạng một số
Hàm có thể nhận 1, 2 hoặc 4 tham số (không có 3)
được định dạng không có phần thập phân, nhưng
có dấu ‘,’ dùng để ngăn cách giữa các nhóm số
được định dạng có phần thập phân, kí tự chấm (.) dùng để ngăn cách phần thập phân và kí tự phẩy(,) dùng ngăn cách giữa các nhóm
Nếu dùng cả 4 tham số, number được định dạng: dùng $dec_seperator thay cho
thousands_seperator thay cho dấu phấy (,) để
$number, int $num_decimal_place, thousands_seperator)
$number [, int $decimals = 0 ] )
Trang 23Hàm xử lý chuỗi
($str2) bên trong một chuỗi khác ($str1).
lần tìm thấy đầu tiên Nếu không tìm thấy, nó sẽ trả về
n Ví dụ minh họa về việc tìm chuỗi "world" trong một chuỗi khác:
<?php
echo strpos("Hello world!","world");
?>
int strpos ($str1, $str2, [$offset=0])
Hàm strpos() được dùng để tìm kiếm một chuỗi con hoặc một ký tự ($str2) bên trong một chuỗi khác ($str1).
Nếu chuỗi con hoặc ký tự được tìm thấy, hàm này sẽ trả về vị trí của lần tìm thấy đầu tiên Nếu không tìm thấy, nó sẽ trả về FALSE.
Ví dụ minh họa về việc tìm chuỗi "world" trong một chuỗi khác:
("Hello world!","world");
($str1, $str2, [$offset=0])
Trang 24Làm việc với HTML FORM
v Được sử dụng để truyền dữ liệu do người dùng nhập từ client tới server
Làm việc với HTML FORM
Được sử dụng để truyền dữ liệu do người dùng nhập từ client tới server
Quá trình xử lý yêu cầu trên Web Server
Trang 25Làm việc với HTML FORM
v Chỉ rõ đích xử lý dữ liệu trong thuộc tính
v Chỉ rõ phương thức gửi dữ liệu từ client tới server là
tính method
<FORM name=" " action="XulyDangNhap.php" method="post"
Tên đăng nhâp: <br>
<INPUT type="text" name=‘txtTendangnhap’><br>
Mật khẩu:
<INPUT type="password" name=‘txtMatkhau’><br>
<INPUT type="submit" name=‘btnSubmit’ value="Submit">
<INPUT type="reset" name=‘btnReset’ value="Submit">
</FROM>
Làm việc với HTML FORM
Chỉ rõ đích xử lý dữ liệu trong thuộc tính action
Chỉ rõ phương thức gửi dữ liệu từ client tới server là POST hay GET trong thuộc
Dữ liệu trong form bao gồm các INPUT
action="XulyDangNhap.php" method="post">
<INPUT type="text" name=‘txtTendangnhap’><br>
<INPUT type="password" name=‘txtMatkhau’><br>
<INPUT type="submit" name=‘btnSubmit’ value="Submit">
<INPUT type="reset" name=‘btnReset’ value="Submit">
Trang 26Phương pháp gửi dữ liệu POST và GET trong PHP
server là:
chương trình URL encoding Thông tin gửi đi được sắp xếp theo cặp name/value ghép với nhau bởi dấu = và các cặp khác nhau được
phân cách nhau bởi dấu &
name1=value1&name2=value2&name3=value3
Phương pháp gửi dữ liệu POST và GET trong PHP
Có hai cách trình duyệt phía client có thể gửi thông tin cho web
Trước khi trình duyệt gửi thông tin đi, nó mã hóa thông tin bằng
chương trình URL encoding Thông tin gửi đi được sắp xếp theo cặp name/value ghép với nhau bởi dấu = và các cặp khác nhau được
name1=value1&name2=value2&name3=value3
Trang 27Gửi dữ liệu theo phương pháp GET
cuối của URL yêu cầu trang Thông tin gửi đi và URL phân cách bởi kí tự ?
v Phương pháp GET giới hạn số kí tự tối đa có thể gửi là 1024.
v Không bao giờ dùng phương pháp GET để gửi mật khẩu hoặc thông tin nhạy cảm khác tới server.
v Không thể dùng phương pháp GET để gửi dữ liệu dạng nhị phân, như các hình ảnh, tài liệu word tới server.
v Có thể dùng biến môi trường QUERY_STRING
xuất thông tin gửi đi.
v PHP cung cấp mảng kết hợp $_GET để truy xuất tất cả thông gửi tới Web Server theo
phương thức GET
http://www.test.com/index.htm?name1=value1&name2=value2
Gửi dữ liệu theo phương pháp GET
Với phương pháp GET thông tin đã mã hóa được gửi đi bằng cách đính kèm vào
cuối của URL yêu cầu trang Thông tin gửi đi và URL phân cách bởi kí tự ?
Phương pháp GET giới hạn số kí tự tối đa có thể gửi là 1024.
Không bao giờ dùng phương pháp GET để gửi mật khẩu hoặc thông tin nhạy cảm khác Không thể dùng phương pháp GET để gửi dữ liệu dạng nhị phân, như các hình ảnh, tài
QUERY_STRING ($_SERVER['QUERY_STRING']) để truy
để truy xuất tất cả thông gửi tới Web Server theo
http://www.test.com/index.htm?name1=value1&name2=value2
Trang 28Gửi dữ liệu theo phương pháp GET
Gửi dữ liệu theo phương pháp GET
Trang 29Gửi dữ liệu theo phương pháp POST
headers Thông tin được mã hóa như phương pháp GET và đặt vào
header gọi là QUERY_STRING.
v Phương pháp POST không giới hạn kích thước dữ liệu được gửi đi
thức HTTP Bằng cách sử dụng Secure HTTP bạn có thể đảm bảo thông tin gửi
đi được an toàn
Server theo phương thức GET
Gửi dữ liệu theo phương pháp POST
Phương pháp POST truyền dữ liệu tới server thông qua HTTP
headers Thông tin được mã hóa như phương pháp GET và đặt vào
Phương pháp POST không giới hạn kích thước dữ liệu được gửi đi
Phương pháp POST được dùng cho gửi ở dạng ASCII và cả dạng nhị phân
Dữ liệu được gửi thông qua HTTP header do đó sự bảo mật phụ thuộc vào giao thức HTTP Bằng cách sử dụng Secure HTTP bạn có thể đảm bảo thông tin gửi
$_POST để truy xuất tất cả thông gửi tới Web
Trang 30Gửi dữ liệu theo phương pháp POST
Gửi dữ liệu theo phương pháp POST
$_POST[‘txtMatkhau’];
XulyDangNhap.php
Trang 31Biến $_REQUEST
phương thức POST, GET
chứa dữ liệu của cả $_GET, $_POST và $_COOKIE
Có thể được dùng để lấy dữ liệu được gửi từ client bằng cả hai