Lập trình Web PHP - Chương 2: PHP cơ bản

1.1. Giới thiệu PHP Giới thiệu PHP

a. Lịch sửphát triển

b. PHP là gì

c. Ưu điểm

d. Một sốwebsite dùng PHP

2.2. Hoạt động của Web Server

a. Cơchế

b. Ví dụ

3.3. Yêu cầu cài đặt Yêu cầu cài đặt

a. Web server (Apache, IIS)

b. Phần mềm PHP (trình thông dịch PHP)

c. Hệquản trịcơsởdữliệu (mysql, SQL Server, Access)

4.4. Giải pháp cài đặt trọn gói (WAMP, LAMP, XAMP)

pdf103 trang | Chuyên mục: PHP | Chia sẻ: dkS00TYs | Lượt xem: 2555 | Lượt tải: 5download
Tóm tắt nội dung Lập trình Web PHP - Chương 2: PHP cơ bản, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
>
Test();
Test(); 
?>
?
11. Làm việc với tập tin và thư mục
1. Sử dụng include()
2. Sử dụng include_once()
3. Sử dụng include_path cho các dự án lớn
73
4. Kiểm tra file
5. Đọc, ghi file
6. Làm việc với thư mục
11. Làm việc với tập tin và thư mục
• Lệnh include() cho phép bạn phối hợp giữa các file
trong một PHP project, ko giống như cú pháp
#include của ngôn ngữ C, lệnh này không chèn mã
lệnh vào file mà thực thi file php giống như cú pháp
gọi hàm
• include() sử dụng để chia sẻ các hàm dùng chung,
74
các đoạn mã chung trong một project có nhiều file
• Nếu không tìm thấy file, include() thông báo
warning nhưng không dừng chương trình
• PHP cung cấp 1 lệnh tương tự include() là
require(), lệnh này có sự khác biệt là sẽ dừng ngay
chương trình khi không tìm thấy file
11. Làm việc với tập tin và thư mục
//vars.php
<?php
$color = 'green';
$fruit = 'apple';
?>
//test.php
<?php
return 4 + 4;
?>
Vì include() thực hiện lời gọi đến file php, 
do đó bạn có thể trả về giá trị
từ file PHP đýợc include
75
<?php
echo "A $color $fruit";
// A
include 'vars.php';
echo "A $color $fruit";
// A green apple
?>
------------------------------------
<?php
echo "This is from file 2";
$retVal = include("file1.php");
echo “Value file 1: $retVal";
echo "This is from file 2\n";
?>
11. Làm việc với tập tin và thư mục
• Có thể đặt lệnh include bên trong 1 cấu trúc
điều kiện hoặc cấu trúc lặp,
• Khi đó tùy theo điều kiện của cấu trúc mà
76
include() có được thực hiện hay không, 1
hay nhiều lần
• Việc này giúp hỗ trợ cho việc thiết kế kiến
trúc trang web tốt hơn.
11. Làm việc với tập tin và thư mục
• include_once() giống như include(), tuy nhiên có
điểm khác biệt là chỉ include 1 lần, lần sau nếu gặp
lại file này thì ko include nữa
• include_once() phân biệt chữ hoa, chữ thường
77
<?php
include_once("a.php");
// this will include a.php
include_once("A.php");
// this will include a.php again on Windows!
?>
Vì phân biệt chữ hoa/thường nên 
include_one chèn thêm lần thứ hai
11. Làm việc với tập tin và thư mục
• include file theo đường dẫn tuyệt đối: Cách
này dở vì khi cài đặt trên máy khác sẽ không
tìm thấy file được include
• include file theo đường dẫn tương đối: Cách
này tốt hơn, nhưng mỗi khi đổi vị trí của file
78
được include thì phải sửa lại tại tất cả các
file thực hiện lời gọi include
• Cách tốt nhất là sử dụng include_path (thiết
lập trong file PHP.INI) đối với những file thư
viện dùng chung được sử dụng nhiều (giống
như đối với ngôn ngữ C)
11. Làm việc với tập tin và thư mục
 thay đổi include_path trong PHP.INI
 dùng lệnh set_include_path()
<?php
var_dump(get_include_path());
set_include_path('/inc'); // Works as of PHP 4.3.0
var_dump(get_include_path());
restore_include_path();
79
var_dump(get_include_path());
?>
 dùng lệnh ini_set()
<?php
var_dump(ini_get("include_path"));
ini_set("include_path", "/inc"); // Works in all PHP versions
var_dump(ini_get("include_path"));
ini_restore("include_path");
var_dump(ini_get("include_path"));
?>
11. Làm việc với tập tin và thư mục
file_exist(), is_file(), is_dir(), is_readable(), 
is_writeable(), is_executable(), filesize(), fileatime()
<?php
function outputFileTestInfo( $file ) {
if ( ! file_exists( $file ) ) {
print "$file does not exist";
return;
}
print "$file is ".(is_file( $file )?"":"not ")."a file\n";
80
print "$file is ".(is_dir( $file )?"":"not ")."a directory\n";
print "$file is ".(is_readable( $file )?"":"not ")."readable\n";
print "$file is ".(is_writable( $file )?"":"not ")."writable\n";
print "$file is ".( filesize($file))." bytes\n";
print "$file was accessed on ".date( "D d M Y g:i A",
fileatime($file ))."";
print "$file was modified on ".date( "D d M Y g:i A",
filemtime( $file))."";
print "$file was changed on".date( "D d M Y g:i A",
filectime($file))."";
}
outputFileTestInfo("c:\\windows\\system32\\cmd.exe");
?>
11. Làm việc với tập tin và thư mục
fopen($filename, $mode);
fwrite($handle, $string);
fread($handle, $length);
fgets($handle);
sprintf($format);
81
fscanf($handle, $format);
fseek($handle, $offset);
fclose($handle);
file_get_contents($filename);
11. Làm việc với tập tin và thư mục
<?php
$var1 = 10;
$var2 = "This is a String";
$var3 = true;
$f = fopen("test.txt", "wt");
fwrite($f, "$var1 $var2
$var3\n");
fwrite($f,
"$var1\n$var2\n$var3\n");
fclose($f);
echo "Read all file by 
fread......\n";
$f = fopen("test.txt", "rb");
$myfile = fread($f,
filesize("test.txt"));
echo $myfile;
82
echo "Read line by 
line......\n";
$f = fopen("test.txt", "rt");
while (!feof($f)) {
$line = fgets($f);
echo "$line";
}
fclose($f);
fclose($f);
echo "Read all file......\n";
$myfile =
file_get_contents("test.txt");
echo($myfile);
?>
11. Làm việc với tập tin và thư mục
<?php
$var1=10;
$var2=100;
$var3=100.3434;
$var4="Test string";
$f=fopen("test.txt", "wt");
fwrite($f, sprintf("%d %10.3f %10.3lf\n\r", $var1, $var2,
$var3));
fwrite($f, sprintf("%s", $var4));
fclose($f);
83
$f=fopen("test.txt", "rt");
if (list($v1, $v2, $v3, $v4) = fscanf($f, "%d %f %lf\n\r%s"))
{
var_dump($v1);
var_dump($v2);
var_dump($v3);
var_dump($v4);
}
$v4 = fgets($f);
var_dump($v4);
fclose($f);
?>
11. Làm việc với tập tin và thư mục
<?php
class AClass {
};
$ob1 =& new AClass();
$ob1->a = 10;
$ob1->b = 100.023;
$ob1->c = "Test String";
var_dump($ob1);
84
$f = fopen("test.txt", "wb");
fwrite($f, serialize($ob1));
fclose($f);
$f = fopen("test.txt", "rb");
$ob2 = unserialize(fgets($f));
fclose($f);
var_dump($ob2);
?>
11. Làm việc với tập tin và thư mục
• mkdir(), rmdir() 
• opendir(), readdir(), closedir()
<?php
$dir=opendir("c:\\windows");
while ($file=readdir($dir)) {
85
echo "$file\n";
}
closedir($dir);
?>
Bài tập
Viết một script thực hiện công việc sau:
• Yêu cầu người dùng nhập vào một số nguyên
• Đem so sánh số vừa nhập với một số nguyên cho 
trước
• Nếu bằng thì xuất ra câu chúc mừng người dùng đã 
86
đoán đúng con số bí mật
• Ngược lại thì thì thông báo kết quả là con số vừa nhập 
là lớn hay bé hơn con số bí mật và yêu cầu nhập lại 
cho đến khi nhập đúng
12. Lớp và Đối tượng trong PHP
• Khai báo lớp
• Hàm tạo
• Phạm vi
87
• Kế thừa
• Hàm serialize,unserialize
12. Lớp và Đối tượng trong PHP
• Khai báo
88
• Hàm tạo
12. Lớp và Đối tượng trong PHP
• Khai báo lớp
class tên_lớp
{
các thuộc tính và phương thức
}
• Tạo và hủy một đối tượng
89
$tên_biến = new tên_lớp();
Đối tượng sẽ tự động bị hủy khi không còn tham 
chiếu nào đến nó
$tên_biến = NULL;
12. Lớp và Đối tượng trong PHP
• Các từ khóa khai báo:
– public: có thể sử dụng bên ngoài lớp
– private: chỉ sử dụng cục bộ bên trong lớp
– protected: sử dụng được bởi các lớp kế thừa
90
• Một số quy tắc chung:
– Không thể khai báo hai method trùng tên
– Method phải được khai báo ngay bên trong khai 
báo lớp
– Dùng biến giả $this để truy xuất các member và 
method trong lớp
– Dùng toán tử -> để truy xuất đến member và 
method
12. Lớp và Đối tượng trong PHP
• Khai báo constructor và destructor
public function __construct(danh sách tham số)
{
khởi tạo giá trị các member
}
91
91
constructor được tự động thực hiện khi đối tượng được tạo
public function __destruct()
{
dọn dẹp
}
destructor được tự động thực hiện khi đối tượng bị hủy
12. Lớp và Đối tượng trong PHP
92
Lập trình hướng đối tượng: constant
• Khai báo
const TÊN_HẰNG = giá trị;
• Truy xuất
93
tên_lớp::TÊN_HẰNG // ngoài lớp
seft::TÊN_HẰNG // trong lớp
Lập trình hướng đối tượng: static member
• Khai báo
… static $thuộc_tính
• Truy xuất
94
tên_lớp::$thuộc_tính // ngoài lớp
seft::$thuộc_tính // trong lớp
Lập trình hướng đối tượng: static method
• Khai báo
… static function phương_thức(…) 
• Truy xuất
95
tên_lớp::phương_thức(…) // ngoài lớp
seft:: phương_thức(…) // trong lớp
Lập trình hướng đối tượng: lớp con
• Khai báo lớp con
class lớp_con extends lớp_cha
{
các thuộc tính và phương thức
96
}
Tất cả các member và method được khai báo 
public hay protected trong lớp cha được thừa 
kế và có thể sử dụng trong lớp con
Lập trình hướng đối tượng:
phương thức nạp chồng
• Gọi một method lớp cha
parent::phương_thức(…)
Bằng cách định nghĩa lại một phương thức đã có ở
97
lớp cha, tất cả các lời gọi đến phương thức này mà
không chỉ định rõ như trên sẽ được hiểu là gọi
phương thức có cùng tên của lớp con
Lập trình hướng đối tượng:sự đa hình
• Khai báo lớp trừu tượng
abstract class lớp_trừu_tượng
{
// các thuộc tính
abstract public function 
phương_thức_trừu_tượng(…);
98
…
// các phương thức khác
}
Không thể tạo đối tượng trực tiếp từ lớp trừu tượng
Lớp con bắt buộc phải định nghĩa các phương thức 
trừu tượng của lớp cha
Lập trình hướng đối tượng:
ngăn kế thừa và nạp chồng
• Lớp không thể kế thừa
final class không_thể_kế_thừa { … }
• Phương thức không thể nạp chồng
99
final public function không_thể_nạp_chồng(…) { … } 
Lập trình hướng đối tượng: interface
• Khai báo Interface
interface giao_diện
{
public function phương_thức();
…
}
100
• Khai báo lớp theo mẫu Interface
abstract class tên_lớp implements giao_diện
{
… 
} 
Các lớp sử dụng Interface hay kế thừa từ một lớp sử dụng
Interface bắt buộc phải định nghĩa tất cả các phương thức trong
Interface đó
12. Lớp và Đối Tượng trong PHP
101
12. Lớp và Đối Tượng trong PHP
1. Hàm serialize() dùng để lưu trữ đối tượng, hàm trả về một chuỗi các byte để lưu 
thông tin của đối tượng
2. Hàm unserialize() dùng để khôi phục đối tượng được lưu giữ bởi hàm serialize()
<?php
class AClass {
var $a;
function AClass() {
}
102
};
$ob1 = new AClass();
$ob1->a = 10;
$ob1->b = 100;
$ob1->c = “Nguyen Ngoc Thuy Hang";
$luu = serialize($ob1);
echo "$luu ";
$ob2 = unserialize($luu);
var_dump($ob2);
?>
Câu hỏi và thảo luận
103

File đính kèm:

  • pdfLập trình Web PHP - Chương 2_PHP cơ bản.pdf
Tài liệu liên quan