Khai báo biến trong PHP

Một phần của tài liệu Giáo trình thiết kế và lập trình web (Trang 38)

Các biến trong PHP không cần phải khai báo trƣớc, các biến khai báo không cần phải định nghĩa kiểu dữ liệu, các biến phải có tiền tố $ trƣớc tên biến, đƣợc khai báo nhƣ sau:

$<tên biến>[=<giá trị của biến>];

Ví dụ: <?php $txt=”Hello Worrld !!!”; $number=6; ?> 6. Các phép toán trong PHP Các phép toán số học

Phép toán Mô tả Ví dụ Kết quả

+ Cộng (Addition) x=2 x+2 4 - Trừ (Subtraction) x=2 5-x 3 * Nhân (Multiplication) x=4 x*5 20 / Chia (Division) 15/5 5/2 3 2.5 % lấy số dƣ của phép chia 2 số nguyên

(Modulus (division remainder))

5%2 10%8 10%2 1 2 0 ++ Tăng (Increment) x=5 x++ x=6 -- Giảm (Decrement) x=5 x-- x=4

Phép toán Ví dụ Cách viết tƣơng tự

+= 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 Các phép so sánh Phép toán Mô tả Ví dụ

== Bằng nhau (is equal to) 5==8 returns false != Khác nhau (is not equal) 5!=8 returns true > Lớn hơn (is greater than) 5>8 returns false < Nhỏ hơn (is less than) 5<8 returns true >= Lớn hơn hoặc bằng (is greater than

or equal to)

5>=8 returns false <= Nhỏ hơn hoặc bằng (is less than or

equal to) 5<=8 returns true Các phép logic Phép toán Mô tả Ví dụ && Và (and) x=6 y=3

(x < 10 && y > 1) returns true

|| Hoặc (or) x=6

y=3

(x==5 || y==5) returns false

! Phủ định (not) x=6

y=3

!(x==y) returns true

7. Các câu lệnh rẽ nhánha) Câu lệnh If...Else a) Câu lệnh If...Else

Cú pháp: Dạng khuyết:

Tác động: Nếu (bt logic) có giá trị true (đúng) thì thực hiện <câu lệnh> và sau đó thực hiện câu lệnh sau if , ngƣợc lại bỏ qua không thực hiện <câu lệnh> và sau đó thực hiện câu lệnh sau if Dạng đủ: if (BT logic) <Câu lệnh 1>; Else <Câu lệnh 2>; Hoặc: if (BT logic 1) <Câu lệnh 1>; Elseif (BT logic 2) <Câu lệnh 2>; Else <Câu lệnh 3>;

Tác động: Nếu (Bt logic) có giá trị true (đúng) thì thực hiện <câu lệnh 1>, ngƣợc lại thực hiện <câu lệnh 2>;

Trong đó: <Câu lệnh>, <Câu lệnh 1>, <Câu lệnh 2>, <Câu lệnh 3> có thể là lệnh đơn hay lệnh ghép. Nếu là lệnh ghép phải đƣợc đặt trong cặp dấu { };

Ví dụ 1: <html> <body> <?php $d=date("D"); if ($d=="Fri") { echo "Hello!<br />";

echo "Have a nice weekend!"; echo "See you on Monday!"; }

?> </body> </html>

Ví dụ 2: <html> <body> <?php $d=date("D"); if ($d=="Fri")

echo "Have a nice weekend!"; else

echo "Have a nice day!"; ?> </body> </html> Ví dụ 3: <html> <body> <?php $d=date("D"); if ($d=="Fri")

echo "Have a nice weekend!"; elseif ($d=="Sun")

echo "Have a nice Sunday!"; else

echo "Have a nice day!"; ?> </body> </html> b) Câu lệnh SWITCH Cú pháp: switch (Biểu thức) { case <hằng 1>: <Câu lệnh 1>; break; case <Hằng 2>: <Câu lệnh 2>;

break; ... Case <Hằng n>: <Câu lệnh n>; Break; default: <Câu lệnh n+1); }

Tác động: Khi gặp lậnh này máy tính giá trị của (biểu thức), sau đó đem so sánh giá trị của biểu thức với các hằng. Nếu giá trị của biểu thức bằng <hằng i>(i=1,2,..,n) thì thực hiện <câu lệnh i> và thoát. Trƣờng hợp giá trị của biểu thức không bằng hằng nào cả thì thực hiện <câu lệnh n+1>. Ví dụ: <html> <body> <?php switch ($x) { case 1: echo "Number 1"; break; case 2: echo "Number 2"; break; case 3: echo "Number 3"; break; default:

echo "No number between 1 and 3"; }

?> </body> </html>

8. Các câu lênh lặp

Trong PHP có các câu lệnh lặp sau:  Câu lệnh while Câu lệnh do...while Câu lệnh for Câu lệnh foreach a) Câu lệnh while Cú pháp: While (Bt logic) <Câu lệnh>;

Tác động: Khi gặp lệnh này máy kiểm tra (BT logic), nếu (BT logic) đúng thì thực hiện <câu lệnh> và quay lại kiểm tra (BT logic), nếu (BT logic) sai thì thoát khỏi.

Ví dụ: <html> <body> <?php $i=1; while($i<=5) {

echo "The number is " . $i . "<br />"; $i++; } ?> </body> </html> b) Câu lệnh do … while Cú pháp: do { <Câu lệnh>; } While (BT logic);

Tác động: Khi gặp lệnh này máy thực hiện câu lệnh, sau đó kiểm tra (BT logic). Nếu (BT

logic) có giá trị True thì quay lại thực hiện câu lệnh, nếu (BT logic ) có giá trị false thì thoát khỏi vòng lặp.

Ví dụ: <html> <body> <?php $i=0; do { $i++;

echo "The number is " . $i . "<br />"; } while ($i<5); ?> </body> </html> c) Câu lệnh for Cú pháp:

for (<Biến DK>=<Giá trị đầu>; <BT logic>; <Biểu thức 2>) {

<Câu lệnh>;

}

Trong đó: - <BT logic>: biểu thức logic

- <Biểu thức 2> : biểu thức dùng để thay đổi giá trị của biến điều khiển

Tác động: khi gặp lệnh này sẽ gán giá trị ban đầu vào cho biến điều khiển, sau đó thực hiện

<câu lệnh>, thực hiện biểu thức <Biểu thức 2> sau đó kiểm tra <BT logic>. Nếu <BT logic> có giá trị đúng thì quay về đầu vòng lặp, ngƣợc lại thoát khỏi vòng lặp

Ví dụ:

<html> <body> <?php

for ($i=1; $i<=5; $i++) {

echo "Hello World!<br />"; }

?> </body> </html>

d) Câu lệnh foreach

Câu lệnh foreach đƣợc sử dụng đối với các mảng dữ liệu

Cú pháp:

Foreach(<tên mảng> as $value)

{

<các câu lệnh> ;

}

Tác động: Các câu lệnh đƣợc lặp đi lặp lại với số lần lặp bằng số các phần tử của mảng

Ví dụ:đoạn chƣơng trình sau đây in ra các phần tử của mảng

<html> <body> <?php

$arr=array("one", "two", "three"); foreach ($arr as $value)

{

echo "Value: " . $value . "<br />"; }

?> </body> </html>

9. Kiểu dữ liệu trong PHP

Trong PHP có các kiểu dữ liệu thông dụng sau: Kiểu dữ liệu logic: Boolean có giá trị true hoặc false Kiểu dữ liệu số nguyên: integer giá trị lơn xấp xỉ 2 tỷ Kiểu dữ liệu số thực: float ~1.8e308 gồm 14 số lẻ Kiểu xâu ký tự: string

Kiểu đối tƣợng: object

9.1. Thay đổi kiểu dữ liệu

Để thay đổi kiểu dữ liệu, có thể sử dụng cách ép kiểu nhƣ trong các ngôn ngữ lập trình C hay Java. Chẳng hạn, khai báo ép kiểu nhƣ ví dụ sau:

<HTML> <HEAD> <TITLE>::Welcome to PHP</TITLE> </HEAD> <BODY> <h4>Variable</h4> <?php $i="S10A"; echo $i+10; echo "<br>"; $i="10A"; $j=(float)$i; $j+=10; echo $i; echo "<br>"; echo $j; echo "<br>"; $q=12;$p=5;

echo "Amount: ".(float)$q/$p; ?>

</BODY> </HTML>

Lƣu ý rằng, PHP tự động nhận biết giá trị chuỗi đằng sau số sẽ không đƣợc chuyển sang kiểu dữ liệu số nhƣ trƣờng hợp trên.

Ngoài ra, có thể sử dụng hàm settype để chuyển đổi dữ liệu này sag dữ liệu khác, ví dụ chúng ta khai báo nhƣ ví dụ sau (settype.php).

<HTML> <HEAD>

<TITLE>::Welcome to PHP</TITLE> </HEAD>

<BODY>

<?php $var="12-ABC"; $check=true; echo $var; echo "<br>"; echo $check; echo "<br>"; settype($var,"integer"); echo $var; echo "<br>"; settype($check,"string"); echo $check; ?> </BODY> </HTML> 9.2. Kiểu dữ liệu mảng

Mảng trong PHP là tập hợp các biến nhớ có cùng tên và phân biệt với nhau qua chỉ số

a) Mảng một chiều

Ta có thể khai báo mảng một chiều nhƣ sau:

$<tên mảng>=array(“Phần tử 1”, “Phần tử 2”,…, “Phần tử n”);

Hoặc

$<tên mảng>[ ]=array(n);

Trong đó: n – là số phần tử của mảng Số thứ tự của mảng bắt đầu bởi 0;

Ví dụ 1: <?php $myarray=array("Peter","Quagmire","Joe"); for ($i=0;$i<3;$i++) { echo $myarray[$i]." <br>"; } ?> Ví dụ 2: <?php

$myarray=array(3); $myarray[0]=”Peter”; $myarray[1]=”Quagmire”; $myarray[2]=”Joe”; for ($i=0;$i<3;$i++) { echo $myarray[$i]." <br>"; } ?> Ví dụ 3: <?php $myarray=array(”Peter”,”Quagmire”,”Joe”); $myarray['Peter']=30; $myarray['Quagmire']=40;; $myarray['Joe']=50; $tong= $myarray['Peter']+$myarray['Quagmire']+$myarray['Joe']; echo "Tong cua 3 phan tu = ".$tong;

?>

b). Mảng nhiều chiều (2 chiều)

Khai báo mảng 2 chiều

$<tên mảng>[ ][ ]=array(m,n) Trong đó m, n là các số nguyên Ví dụ : <?php echo “<h4>Mảng 2 chiều</h4>”; $myarrs[][]=array(3,4); // khoi tạo $k=0; for ($i=0;$i<3;$i++) for ($j=0;$j<4;$j++) { $k+=1; $myarrs[$i][$j]=$k; }

// in ta for ($i=0;$i<3;$i++) { for ($j=0;$j<4;$j++) echo $myarrs[$i][$j]." "; echo "<br>"; } ?> 10. FORM

FORM là thành phần quan trọng trọng các trong HTML để ngƣời dùng cập nhật thông tin gửi đến SERVER. Chƣơng trình xử lý các thông tin trên FORM thƣờng là các chƣờng trình viết bằng ASP (đối với IIS), PHP đối với các máy chạy Apache.

Ví dụ về FORM

<html> <body>

<form action="welcome.php" method="post"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" />

</form> </body> </html>

File "welcome.php" xử lý các thông tin trên FORM <html>

<body>

Welcome <?php echo $_POST["name"]; ?>.<br /> You are <?php echo $_POST["age"]; ?> years old. </body>

</html>

Biến $_GET

Biến $_GET trả lại giá trị theo tên từ FORM đƣợc gửi theo phƣơng thức GET

Ví dụ:

<form action="welcome.php" method="get"> Name: <input type="text" name="name" />

Age: <input type="text" name="age" /> <input type="submit" />

</form>

Để lấy lại giá trị của các tên "name" và "age" ta có thể viết: Welcome <?php echo $_GET["name"]; ?>.<br />

You are <?php echo $_GET["age"]; ?> years old!

Biến $_REQUEST

Trong PHP biến $_REQUEST chứa các nội dung của $_GET, $_POST, và $_COOKIE đƣợc gửi theo phƣơng thức GET và POST

Ví dụ:

Welcome <?php echo $_REQUEST["name"]; ?>.<br /> You are <?php echo $_REQUEST["age"]; ?> years old!

Biến $_POST

Biến $_ POST trả lại giá trị theo tên từ FORM đƣợc gửi theo phƣơng thức POST

Ví dụ:

<form action="welcome.php" method="post"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" />

</form>

Để lấy lại giá trị của các tên "name" và "age" ta có thể viết: Welcome <?php echo $_POST["name"]; ?>.<br />

You are <?php echo $_POST["age"]; ?> years old!

11. Hàm trong PHP Khai báo hàm: Khai báo hàm:

Hàm trong PHP có cấu trúc nhƣ sau:

function <tên hàm>(<danh sách các tham số nếu có>)

{

Thân của hàm ;

}

Sử dụng hàm: muốn sử dụng hàm ở nơi nào ta chỉ cần gọi

<Tên hàm>(< Danh sách các tham số thực nếu có>)

Ví dụ: <html> <body> <?php function writeMyName() {

echo "Trần Văn Nam";

}

Echo “Tên tôi là : “;

writeMyName(); ?>

</body> </html>

Cũng giống nhƣ các hàm trong C, các tham số hình thức đƣợc khai báo trong phần dấu ngoặc ( ) sau tên của hàm. Các tham số thực chuyền vào có thể là giá trị hoặc biến.

Ví dụ: <html> <body> <?php function writeMyName($fname,$punctuation) {

echo $fname . " Refsnes" . $punctuation . "<br />"; }

echo "My name is ";

writeMyName("Kai Jim","."); echo "My name is ";

writeMyName("Hege","!"); echo "My name is ";

writeMyName("Ståle","..."); ?>

</body> </html>

Ví dụ: <html> <body> <?php function add($x,$y) { $total = $x + $y; return $total; } echo "1 + 16 = " . add(1,16); ?> </body> </html> Một số hàm thƣờng dùng: Hàm Date() trong PHP Cú pháp: Date(format) Trong đó:

Tham số Format: định dạng ngày  d - Ngày trong tháng (01-31)  m - Tháng hiện tại (01-12)  Y - Năm hiện tại

Các ký hiệu "/", ".", "-" để ngăn cách giứa ngày, tháng, năm

Ví dụ: <?php echo date("d/m/y"); echo "<br />"; echo date("d.m.y"); echo "<br />"; echo date("d-m-y"); ?> Hàm include()

Hàm include() để chèn nội dung của một file vào một file PHP trƣớc khi SERVER thực hiện Giả sử ta có một fie header.php ta muốn chèn nó vào một file PHP ta thực hiện nhƣ sau:

<html> <body>

<?php include("header.php"); ?> <h1>Welcome to my home page</h1> <p>Some text</p>

</body> </html>

Mở một file

Hàm fopen() đƣợc sử dụng để mở file trong PHP Cú pháp: Fopen(<tên file>,<modes>) Ví dụ: <html> <body> <?php $file=fopen("welcome.txt","r"); ?> </body> </html> Các modes đƣợc xác định nhƣ sau: Modes Mô tả r Read only. r+ Read/Write. w Write only.

w+ Read/Write. Mở và xóa nội dung của file; hoặc tạo lập file mới nếu file chƣa tồn tại.t

a Append. Mở và ghi vào cuối file hoặc tạo file mới nếu file chƣa tồn tại.

a+ Read/Append.

x Write only. Tạo lập file mới. Trả lại FALSE và lỗi nếu file đã tồn tại x+ Read/Write. Tạo file mới. Trả lại FALSE và lỗi nếu file đã tồn tại

Hàm fclose() đƣợc dùng để đóng một file đã mở <?php

$file = fopen("test.txt","r"); //some code to be executed fclose($file);

?>

Kiểm tra cuối một file

Hàm feof() kiểm tra đã ở cuối file hay chƣa.

if (feof($file)) echo "End of file";

Đọc các dòng trong một file

Hàm fgets() đƣợc sử dụng để đọc đọc một dòng từ file.

Ví dụ:

<?php

$file = fopen("welcome.txt", "r") or exit("Unable to open file!"); //Output a line of the file until the end is reached

while(!feof($file)) { echo fgets($file). "<br />"; } fclose($file); ?> Đọc các ký tự từ một file: Hàm fgetc() đƣợc sử dụng để đọc từng ký tự từ một file. Ví dụ: <?php

$file=fopen("welcome.txt","r") or exit("Unable to open file!"); while (!feof($file)) { echo fgetc($file); } fclose($file); ?>

Tham chiếu hệ thống file a) Tạo form Upload-File

enctype="multipart/form-data"

Thuộc tính type của thành phần <input> Type="file"

Ví dụ:

<html> <body>

<form action="upload_file.php" method="post" enctype="multipart/form-data">

<label for="file">Filename:</label>

<input type="file" name="file" id="file" /> <br />

<input type="submit" name="submit" value="Submit" /> </form>

</body> </html>

b) Tạo lập Upload Script

File "upload_file.php" cho biết thông tin về một file đã đƣợc Upload: <?php

if ($_FILES["file"]["error"] > 0) {

echo "Error: " . $_FILES["file"]["error"] . "<br />"; }

else {

echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />";

echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Stored in: " . $_FILES["file"]["tmp_name"];

} ?>

12. Khái niệm cơ bản về Cookie và session trong PHP

Cookie và session là hai phƣơng pháp sử dụng để quản lý các phiên làm việc giữa ngƣời sử dụng và hệ thống. Việc quản lý phiên làm việc này sẽ giúp tạo ra sự chứng thực hiệu quả bởi việc xác nhận thông tin trƣớc khi truy cập vào một phân vùng cố định. Ngoài ra, việc quản lý

tốt phiên làm việc cũng giúp ngƣời truy cập cảm thấy dễ dàng sử dụng dịch vụ của trang web cho những lần truy cập sau. Bởi cớ chế quản lý phiên làm việc ghi nhận lại quá trình truy cập của ngƣời sử dụng khi họ thăm viếc trang web lần đầu.

12.1. Tổng quan về cookie:

Cookie là 1 đoạn dữ liệu đƣợc ghi vào đĩa cứng hoặc bộ nhớ của máy ngƣời sử dụng. Nó đƣợc trình duyệt gởi ngƣợc lên lại server mỗi khi browser tải 1 trang web từ server. Những thông tin đƣợc lƣu trữ trong cookie hoàn toàn phụ thuộc vào website trên server. Mỗi website có thể lƣu trữ những thông tin khác nhau trong cookie, ví dụ thời điểm lần cuối ta ghé

thăm website, đánh dấu ta đã login hay chƣa, v.v...

Cookie đƣợc tạo ra bởi website và gởi tới browser, do vậy 2 website khác nhau (cho dù cùng host trên 1 server) sẽ có 2 cookie khác nhau gởi tới browser. Ngoài ra, mỗi browser quản lý và lƣu trữ cookie theo cách riêng của mình, cho nên 2 browser cùng truy cập vào 1 website sẽ nhận đƣợc 2 cookie khác nhau.

a -Thiết lập cookie:

Để thiết lập cookie ta sử dụng cú pháp:

Setcookie("tên cookie","giá trị", thời gian sống)

Tên cookie là tên mà chúng ta đặt cho phiên làm việc. Giá trị là thông số của tên cookie.

Ví dụ:

Setcookie("username","admin", time() +3600)

Nhƣ ví dụ trên ta thấy với tên là username và giá trị là admin, có thời gian sống là 1 giờ tính từ thời điểm thiết lập.

Chú ý: Kịch bản cookie phải đặt trên mọi giá trị trả về bao gồm thẻ HTML và lệnh echo.

b - Sử dụng cookie:

Để sử dụng lại cookie vừa thiết lập, chúng ta sử dụng cú pháp: Cú pháp: $_COOKIE["tên cookies"]

Tên cookie là tên mà chúng ta thiết lập phía trên.

Ví dụ:

Tạo trang cookie.php với nội dung sau: <?php

setcookie("name","nguyenduylinhlh",time() + 3600); ?>

<html> <head>

<title>Test page 1</title></head> <body>

<b><a href=cookie2.php>Click here</a></b> </body>

</html>

Tiếp tục tạo trang cookie2.php với nội dung sau: <html>

<head><title>Result Page</title></head> <body>

<?php

echo "Tên của bạn là: <b>".$_COOKIE['name']."</b>"; ?>

</body> </html>

c- Hủy Cookie:

Để hủy 1 cookie đã đƣợc tạo ta có thể dùng 1 trong 2 cách sau: + Cú pháp: setcookie("Tên cookie")

Gọi hàm setcookie với chỉ duy nhất tên cookie mà thôi + Dùng thời gian hết hạn cookie là thời điểm trong quá khứ.

Ví dụ: setcookie("name","nguyenduylinhlh",time()-3600); Ví dụ:

Tiếp tục tạo trang cookie3.php với nội dung sau: <?php

setcookie("name","nguyenduylinhlh",time()-360); ?>

<html> <head>

<title>Test page 1</title></head> <body>

</body> </html>

12.2. Tổng quan về session:

Một cách khác quản lý ngƣời sử dụng là session. Session đƣợc hiểu là khoảng thời gian ngƣời sử dụng giao tiếp với 1 ứng dụng. Một session đƣợc bắt đầu khi ngƣời sử dụng truy cập vào ứng dụng lần đầu tiên, và kết thúc khi ngƣời sử dụng thoát khỏi ứng dụng. Mỗi session sẽ có

Một phần của tài liệu Giáo trình thiết kế và lập trình web (Trang 38)

Tải bản đầy đủ (PDF)

(75 trang)