SlideShare a Scribd company logo
Phần 02: PHP File
Vấn đề 01: Kiểm tra sự tồn tại của tập tin, thư mục
Sử dụng hàm file_exist($fileName) để kiểm tra sự tồn tại của tập tin, thư mục
• $filename: tên (đường dẫn) tập tin, thư mục cần kiểm tra
• Kết quả trả về true  Tồn tại
• Kết quả trả về false  Không tồn tại
Vấn đề 02: Xem một số thông tin cơ bản của tập tin, thư mục
• filetype($fileName) trả về kiểu của $filename (tập tin hoặc thư mục)
• filesize($fileName) trả về dung lượng của $filename (đơn vị bytes)
• is_readable($fileName) kiểm tra $fileName có được quyền đọc hay không ?
• is_writeable($fileName) kiểm tra $fileName có được quyền ghi hay không ?
• is_executable($fileName) kiểm tra $fileName có được quyền thực thi hay không ?
Vấn đề 03: Các hàm lấy thông tin từ đường dẫn
• basename($path) trả về kết quả là tên của tập tin từ đường dẫn $path
• dirname($path) trả về tên thư mục tại đường dẫn $path
• pathinfo ($path, $options) trả về một mảng các thông tin từ đường dẫn $path
o dirname
o basename
o extension
Vấn đề 04: Thống kê số dòng, số từ và số ký tự trong file
• file ($fileName) đọc tập tin $fileName thành một mảng, mỗi dòng trong tập tin
$fileName tương ứng với một phần tử của mảng
• file_get_contents ($fileName) đọc tập tin $fileName thành một chuỗi
Vấn đề 05: Ghi nội dung vào tập tin với file_put_contents
• Sử dụng hàm file_put_contents ($fileName, $data, $mod) để ghi nội dung $data
vào tập tin $fileName
• Quá trình thực thi của hàm file_put_contents(): Tạo ra tập tin nếu tập tin đó
chưa tồn tại  Mở tập tin  Ghi nội dung  Đóng tập tin
• Nếu $mod = FILE_APPEND nội dung cũ ở tập tin được giữ, nội dung mới được
ghi vào cuối tập tin
• Nếu ghi thành công, trả về tổng số ký tự đã ghi ngược lại trả về FALSE
Vấn đề 06: Đổi tên tập tin, thư mục
• Sử dụng hàm rename ($oldName, $newName) để đổi tên tập tin, thư mục từ
giá trị $oldName thành giá trị $newName (lưu ý thay đổi cả phần đường dẫn)
• Hàm trả về kết quả TRUE nếu rename thành công, trả về kết quả FALSE nếu
rename không thành công
Vấn đề 07: Sao chép tập tin
• Sử dụng hàm copy ($sourceFile, $destinationFile) để copy nội dung từ tập tin
$sourceFile sang tập tin $destinationFile
• Hàm trả về kết quả TRUE nếu copy thành công, trả về kết quả FALSE nếu copy
không thành công
• Làm sao copy một thư mục nào đó ?
Vấn đề 08: Khái quát về vấn đề phân quyền tập tin, thư mục (P1)
Xét mối quan hệ giữa người dùng và một tập tin, thư mục. Chúng ta có 3 nhóm
sau đây:
• Owner/User: Người sở hữu, chủ tài khoản.
• Group: Các tài khoản cùng hoạt động trong một nhóm.
• Other/Guest: Ngoài 2 đối tượng trên.
Vấn đề 08: Khái quát về vấn đề phân quyền tập tin, thư mục (P2)
Xét về quyền thao tác giữa người dùng và một tập tin. Chúng ta có 3 loại quyền
sau:
• Read: có thể đọc nội dung trong tập tin
• Write: có thể thay đổi nội dung của tập tin
• Execute: có thể mở tập tin (khởi chạy chương trình nếu là một tập tin ứng dụng)
Vấn đề 08: Khái quát về vấn đề phân quyền tập tin, thư mục (P3)
Xét về quyền thao tác giữa người dùng và một thư mục. Chúng ta có 3 loại quyền
sau:
• Read: Có thể duyệt nội dung trong thư mục (Xem trong thư mục có gì, phải đi
kèm với quyền Execute).
• Write: Có thể thay đổi nội dung trong thư mục này (Thêm, xóa, sửa, đổi tên thư
mục/tập tin bên trong thư mục này).
• Execute: Có thể mở thư mục (Mở thư mục ra, nhưng không thể thấy gì trong
thư mục này nếu không đi kèm với quyền Read).
Vấn đề 08: Khái quát về vấn đề phân quyền tập tin, thư mục (P4)
Cấp quyền truy cập cho tập tin, thư mục:
• Quyền cho một tập tin, thư mục thường được biểu diễn tương ứng với một số
nguyên có 3 chữ số xyz
o Số thứ nhất x - đại diện cho quyền hạn của Owner/User.
o Số thứ hai y - đại diện cho quyền hạn của Group.
o Số thứ ba z - đại diện cho quyền hạn của Other/Guest.
Vấn đề 08: Khái quát về vấn đề phân quyền tập tin, thư mục (P5)
Giá trị của các chữ số xyz, quy định như sau:
• Read = 4
• Write = 2
• Execute = 1
 Read + Write + Execute = 4 + 2 + 1 = 7 (Toàn quyền)
 Read + Execute = 4 + 1 = 7 (Chỉ có thể đọc và thực thu tập tin)
Vấn đề 08: Khái quát về vấn đề phân quyền tập tin, thư mục (P6)
Một tập tin được cấu hình với quyền 754, như vậy chúng ta có các thông tin sau:
• Chữ số đầu tiên 7 = 4 + 2 + 1  quyền: toàn quyền  Owner/User có toàn
quyền
• Chữ số thứ hai 5 = 4 + 1  quyền: đọc và thực thi  Group có quyền đọc và
thực thi
• Chữ số thứ ba 4  quyền: đọc  Other/Guest chỉ có quyền đọc tập tin.
Vấn đề 09: Tạo – Xóa – Cấp quyền cho thư mục
• Sử dụng hàm mkdir ($path, $mode) để tạo ra thư mục ở đường dẫn $path, với
quyền truy cập vào thư mục là $mode
• Sử dụng hàm rmdir ($path) để xóa thư mục ở đường dẫn $path
• Sử dụng hàm fileperms ($dirName) để xem quyền truy cập đối với thư mục
$dirName
• Sử dụng hàm chmod ($dirName, $mod) để cấp quyền truy cập cho thư mục
$dirName
Vấn đề 10: Tạo – Xóa – Cấp quyền cho tập tin
• Sử dụng hàm file_put_contents ($path, null) để tạo ra tập tin ở đường dẫn
$path
• Sử dụng hàm unlink ($path) để xóa tập tin ở đường dẫn $path
• Sử dụng hàm fileperms ($fileName) để xem quyền truy cập đối với tập tin
$fileName
• Sử dụng hàm chmod ($fileName, $mod) để cấp quyền truy cập cho tập tin
$fileName
Vấn đề 11: Liệt kê danh sách tập tin và thư mục
• Sử dụng hàm glob ($pattern) để lấy danh sách các tập tin và thư mục với tên
thỏa $pattern
• Sử dụng tham số thứ hai GLOB_ONLYDIR để kết quả trả về chỉ bao gồm các
thư mục.
Vấn đề 12: Tìm hiểu hàm parse_ini_file (1)
• Cấu trúc tập tin *.ini
Vấn đề 12: Tìm hiểu hàm parse_ini_file (2)
• Sử dụng hàm parse_ini_file ($fileName) để đọc nội dung $fileName thành một
mảng.
• Lưu ý nếu muốn đọc luôn các phần section cần truyền giá trị TRUE vào tham số
thứ hai
Vấn đề 13: Một số định nghĩa về hệ thống cây thư mục (1)
Vấn đề 13: Một số định nghĩa về hệ thống cây thư mục (2)
• Root-directory: thư mục cao nhất trong cây thư mục và trên nó không còn có
một thư mục nào khác. Root-directory được đánh dấu với ký hiệu /
• Working-directory (current directory): thư mục mà người sử dụng đang làm việc
• Parent-directory: thư mục cha - thư mục nằm ngay phía trên một thư mục khác
trong cây thư mục
• Path (đường dẫn): mỗi tệp tin hay thư mục trong hệ thống linux được chỉ định
bởi một đường dẫn (để truy cập vào tập tin hay thư mục đó)
Vấn đề 13: Phân biệt đường dẫn tuyệt đối – Đường dẫn tương đối
• Đường dẫn tuyệt đối:
o Là những đường dẫn được tính từ root (/), đi qua các thư mục khác cho đến tập tin hoặc
thư mục đích
o Khi chúng ta đang ở article.php, đường dẫn tuyệt đối đến các tập tin
 style.css sẽ là /style/style.css
 vi.php sẽ là /lib/language/vi.phpstyle.css
o Thường được dùng với các hàm include, require để nhúng các tập tin .php vào một tập tin
php nào đó hoặc dùng để khai báo thư mục chứa hình ảnh trên host
Vấn đề 13: Phân biệt đường dẫn tuyệt đối – Đường dẫn tương đối
• Đường dẫn tương đối:
o Là những đường dẫn có điểm xuất phát là thư mục hiện tại (current diractory).
o Khi chúng ta đang ở article.php, đường dẫn tương đối đến các tập tin
 style.css sẽ là ../css/style.css
 vi.php sẽ là /lib/language/vi.php
o Thường được sử dụng để load các tập tin javascript, css và hình ảnh lên và hiển thị trong
trang web
Vấn đề 14: Thao tác với thư mục
• getcwd() trả về thư mục hiện tại
• realpath() trả về đường dẫn tuyệt đối của đường dẫn $path
• chdir() thay đổi thư mục hiện tại
• dir() mở một thư mục lên và thao tác với thư mục đó (3 thao tác read, rewind,
close )
• opendir() mở một thư mục lên và thao tác với thư mục đó
• closedir() đóng thư mục được mở bởi hàm opendir()
• scandir() lấy danh sách các tập tin và thư mục của đường dẫn $path
Vấn đề 15: Liệt kê cấu trúc tập tin thư mục đến cấp 2
Bài tập: Một số yêu cầu bổ sung
• Khi danh sách rỗng: hiển thị thông báo, ẩn button Delete File (index.php)
• Thay đổi thông báo trong trường hợp Add và Edit File (add.php, edit.php)
• Truyền ID của file chưa tồn tại: hiển thị thông báo (edit.php, delete.php)
• Xóa nhiều file: Hiển thị một hộp thoại xác nhận lại yêu cầu xem người dùng có
chắc chắn muốn xóa các file đó hay không ? (multy-delete.php)

More Related Content

What's hot

BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPTBÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
MasterCode.vn
 
5 quyen truy-xuat
5 quyen truy-xuat5 quyen truy-xuat
5 quyen truy-xuatvantinhkhuc
 
Chuong 03 he_thong_file
Chuong 03 he_thong_fileChuong 03 he_thong_file
Chuong 03 he_thong_file
nguyenghia831
 
Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp
Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệpBài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp
Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệpnguyennhuhaiau
 
Tin11 chuong 05 bai 15
Tin11 chuong 05 bai 15Tin11 chuong 05 bai 15
Tin11 chuong 05 bai 15
Cam Tu Chau
 
Bài 14-15 -Lớp 11: Thao tác với tệp
Bài 14-15 -Lớp 11: Thao tác với tệpBài 14-15 -Lớp 11: Thao tác với tệp
Bài 14-15 -Lớp 11: Thao tác với tệp
thaohien1376
 
Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#
Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#
Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#
MasterCode.vn
 
tin học lớp 6
tin học lớp 6tin học lớp 6
tin học lớp 6
Học Tập Long An
 
Bài Giảng IC3 GS4: Tập tin và thư mục
Bài Giảng IC3 GS4: Tập tin và thư mụcBài Giảng IC3 GS4: Tập tin và thư mục
Bài Giảng IC3 GS4: Tập tin và thư mục
Dũng Nguyễn Văn
 
Hdubuntu
HdubuntuHdubuntu
Linux và mã nguồn mở
Linux và mã nguồn mởLinux và mã nguồn mở
Linux và mã nguồn mở
Nguyễn Anh
 
04 02-2015 tep.ppt
04 02-2015 tep.ppt04 02-2015 tep.ppt
04 02-2015 tep.ppt
Tranvansi Sivantran
 
Hệ Thống DNS
Hệ Thống DNSHệ Thống DNS
Hệ Thống DNS
Tuấn Nguyễn Văn
 
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPTBài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
MasterCode.vn
 
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngoc
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngocGiao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngoc
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngocNgoc Vu Thi Quynh
 
Bai giang tin hoc lop 11 bai 14 15
Bai giang tin hoc lop 11 bai 14   15Bai giang tin hoc lop 11 bai 14   15
Bai giang tin hoc lop 11 bai 14 15Chi Lệ
 

What's hot (18)

BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPTBÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
 
5 quyen truy-xuat
5 quyen truy-xuat5 quyen truy-xuat
5 quyen truy-xuat
 
Chuong 03 he_thong_file
Chuong 03 he_thong_fileChuong 03 he_thong_file
Chuong 03 he_thong_file
 
Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp
Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệpBài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp
Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp
 
Tin11 chuong 05 bai 15
Tin11 chuong 05 bai 15Tin11 chuong 05 bai 15
Tin11 chuong 05 bai 15
 
Bài 14-15 -Lớp 11: Thao tác với tệp
Bài 14-15 -Lớp 11: Thao tác với tệpBài 14-15 -Lớp 11: Thao tác với tệp
Bài 14-15 -Lớp 11: Thao tác với tệp
 
Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#
Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#
Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#
 
tin học lớp 6
tin học lớp 6tin học lớp 6
tin học lớp 6
 
Bài Giảng IC3 GS4: Tập tin và thư mục
Bài Giảng IC3 GS4: Tập tin và thư mụcBài Giảng IC3 GS4: Tập tin và thư mục
Bài Giảng IC3 GS4: Tập tin và thư mục
 
Hdubuntu
HdubuntuHdubuntu
Hdubuntu
 
Bai 15
Bai 15Bai 15
Bai 15
 
Linux và mã nguồn mở
Linux và mã nguồn mởLinux và mã nguồn mở
Linux và mã nguồn mở
 
04 02-2015 tep.ppt
04 02-2015 tep.ppt04 02-2015 tep.ppt
04 02-2015 tep.ppt
 
8 filter
8 filter8 filter
8 filter
 
Hệ Thống DNS
Hệ Thống DNSHệ Thống DNS
Hệ Thống DNS
 
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPTBài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
 
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngoc
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngocGiao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngoc
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngoc
 
Bai giang tin hoc lop 11 bai 14 15
Bai giang tin hoc lop 11 bai 14   15Bai giang tin hoc lop 11 bai 14   15
Bai giang tin hoc lop 11 bai 14 15
 

Viewers also liked

Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
KhanhPham
 
Thiết kế dữ liệu
Thiết kế dữ liệuThiết kế dữ liệu
Thiết kế dữ liệuNguyen Tran
 
Báo cáo thực tập athena Nghiên cứu và xây dựng web tin tức bằng Joomla
Báo cáo thực tập athena Nghiên cứu và xây dựng web tin tức bằng JoomlaBáo cáo thực tập athena Nghiên cứu và xây dựng web tin tức bằng Joomla
Báo cáo thực tập athena Nghiên cứu và xây dựng web tin tức bằng Joomla
Nguyễn Tân
 
Bao cao thuc tap website tin tuc joomla
Bao cao thuc tap website tin tuc joomlaBao cao thuc tap website tin tuc joomla
Bao cao thuc tap website tin tuc joomlaKiên Lê
 
Mô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaMô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với Java
Huy Vũ
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
MasterCode.vn
 

Viewers also liked (7)

Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
 
Ch5.thiet kedulieu
Ch5.thiet kedulieuCh5.thiet kedulieu
Ch5.thiet kedulieu
 
Thiết kế dữ liệu
Thiết kế dữ liệuThiết kế dữ liệu
Thiết kế dữ liệu
 
Báo cáo thực tập athena Nghiên cứu và xây dựng web tin tức bằng Joomla
Báo cáo thực tập athena Nghiên cứu và xây dựng web tin tức bằng JoomlaBáo cáo thực tập athena Nghiên cứu và xây dựng web tin tức bằng Joomla
Báo cáo thực tập athena Nghiên cứu và xây dựng web tin tức bằng Joomla
 
Bao cao thuc tap website tin tuc joomla
Bao cao thuc tap website tin tuc joomlaBao cao thuc tap website tin tuc joomla
Bao cao thuc tap website tin tuc joomla
 
Mô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaMô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với Java
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
 

Similar to Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)

3-he-thong-tap-tin1.pdf
3-he-thong-tap-tin1.pdf3-he-thong-tap-tin1.pdf
3-he-thong-tap-tin1.pdf
MinhPhng737164
 
5 quyen truy-xuat
5 quyen truy-xuat5 quyen truy-xuat
5 quyen truy-xuatvantinhkhuc
 
NGUYEN NGOC LOC LOP 10 CHUONG 2 BAI 11
NGUYEN NGOC LOC LOP 10 CHUONG 2 BAI 11NGUYEN NGOC LOC LOP 10 CHUONG 2 BAI 11
NGUYEN NGOC LOC LOP 10 CHUONG 2 BAI 11Tin 5CBT
 
DangNgocHaMy_bai11_chuong2_lop10
DangNgocHaMy_bai11_chuong2_lop10DangNgocHaMy_bai11_chuong2_lop10
DangNgocHaMy_bai11_chuong2_lop10K33LA-KG
 
Chương 3: Tạo web động
Chương 3: Tạo web độngChương 3: Tạo web động
Chương 3: Tạo web độngHồ Lợi
 
Bai07xulynhapxuat 130622092548-phpapp02
Bai07xulynhapxuat 130622092548-phpapp02Bai07xulynhapxuat 130622092548-phpapp02
Bai07xulynhapxuat 130622092548-phpapp02
Hoàng Hà
 
Tệp v￀ quản lᅪ tệp
Tệp v￀ quản lᅪ tệpTệp v￀ quản lᅪ tệp
Tệp v￀ quản lᅪ tệpyouti1992
 
Dang baitapthuchanh monhdh_unix
Dang baitapthuchanh monhdh_unixDang baitapthuchanh monhdh_unix
Dang baitapthuchanh monhdh_unixBảo Bối
 
Kichbandayhoc - le thituyet- K33103301
Kichbandayhoc - le thituyet- K33103301Kichbandayhoc - le thituyet- K33103301
Kichbandayhoc - le thituyet- K33103301
TIN D BÌNH THUẬN
 
Làm thế nào để học linux trong 24h?
Làm thế nào để học linux trong 24h?Làm thế nào để học linux trong 24h?
Làm thế nào để học linux trong 24h?
Công Nghệ - VTC Mobile
 
Hệ thống tệp Linux
Hệ thống tệp LinuxHệ thống tệp Linux
Hệ thống tệp Linux
Hanh Nguyễn Văn
 
Python Beginner Class day-09-fileio
Python Beginner Class day-09-fileioPython Beginner Class day-09-fileio
Python Beginner Class day-09-fileio
Khánh Nguyễn
 
20 lenh linux
20 lenh linux20 lenh linux
20 lenh linux
Pham Tiep
 
Mcsa 2012 ntfs permission
Mcsa 2012 ntfs permissionMcsa 2012 ntfs permission
Mcsa 2012 ntfs permission
laonap166
 
Th linux
Th linuxTh linux
Th linux
thocntt
 
Phân quyền trên file và thư mục trên Ubuntu
Phân quyền trên file và thư mục trên UbuntuPhân quyền trên file và thư mục trên Ubuntu
Phân quyền trên file và thư mục trên Ubuntu
Lương Kiên
 

Similar to Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2) (20)

3-he-thong-tap-tin1.pdf
3-he-thong-tap-tin1.pdf3-he-thong-tap-tin1.pdf
3-he-thong-tap-tin1.pdf
 
5 quyen truy-xuat
5 quyen truy-xuat5 quyen truy-xuat
5 quyen truy-xuat
 
NGUYEN NGOC LOC LOP 10 CHUONG 2 BAI 11
NGUYEN NGOC LOC LOP 10 CHUONG 2 BAI 11NGUYEN NGOC LOC LOP 10 CHUONG 2 BAI 11
NGUYEN NGOC LOC LOP 10 CHUONG 2 BAI 11
 
DangNgocHaMy_bai11_chuong2_lop10
DangNgocHaMy_bai11_chuong2_lop10DangNgocHaMy_bai11_chuong2_lop10
DangNgocHaMy_bai11_chuong2_lop10
 
Chương 3: Tạo web động
Chương 3: Tạo web độngChương 3: Tạo web động
Chương 3: Tạo web động
 
Bai07xulynhapxuat 130622092548-phpapp02
Bai07xulynhapxuat 130622092548-phpapp02Bai07xulynhapxuat 130622092548-phpapp02
Bai07xulynhapxuat 130622092548-phpapp02
 
Tệp v￀ quản lᅪ tệp
Tệp v￀ quản lᅪ tệpTệp v￀ quản lᅪ tệp
Tệp v￀ quản lᅪ tệp
 
Dang baitapthuchanh monhdh_unix
Dang baitapthuchanh monhdh_unixDang baitapthuchanh monhdh_unix
Dang baitapthuchanh monhdh_unix
 
Kichbandayhoc - le thituyet- K33103301
Kichbandayhoc - le thituyet- K33103301Kichbandayhoc - le thituyet- K33103301
Kichbandayhoc - le thituyet- K33103301
 
Làm thế nào để học linux trong 24h?
Làm thế nào để học linux trong 24h?Làm thế nào để học linux trong 24h?
Làm thế nào để học linux trong 24h?
 
Hệ thống tệp Linux
Hệ thống tệp LinuxHệ thống tệp Linux
Hệ thống tệp Linux
 
Python Beginner Class day-09-fileio
Python Beginner Class day-09-fileioPython Beginner Class day-09-fileio
Python Beginner Class day-09-fileio
 
Bài 11
Bài 11Bài 11
Bài 11
 
20 lenh linux
20 lenh linux20 lenh linux
20 lenh linux
 
Mcsa 2012 ntfs permission
Mcsa 2012 ntfs permissionMcsa 2012 ntfs permission
Mcsa 2012 ntfs permission
 
Th linux
Th linuxTh linux
Th linux
 
3 he thong-file
3 he thong-file3 he thong-file
3 he thong-file
 
3 he thong-file
3 he thong-file3 he thong-file
3 he thong-file
 
3 he thong-file
3 he thong-file3 he thong-file
3 he thong-file
 
Phân quyền trên file và thư mục trên Ubuntu
Phân quyền trên file và thư mục trên UbuntuPhân quyền trên file và thư mục trên Ubuntu
Phân quyền trên file và thư mục trên Ubuntu
 

More from KhanhPham

Wp hoi-thao-phan-quyen
Wp hoi-thao-phan-quyenWp hoi-thao-phan-quyen
Wp hoi-thao-phan-quyen
KhanhPham
 
The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress Meetup
KhanhPham
 
Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng ViệtMysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
KhanhPham
 
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10
KhanhPham
 
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9
Zend Framework 2.0:  Upload file và Multi upload files trong ZF2 - Bài 9Zend Framework 2.0:  Upload file và Multi upload files trong ZF2 - Bài 9
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9
KhanhPham
 
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8 Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
KhanhPham
 
Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7
Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7
Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7
KhanhPham
 
Giáo trình thiết kế web - Thiết kế web với Dreamweaver
Giáo trình thiết kế web - Thiết kế web với DreamweaverGiáo trình thiết kế web - Thiết kế web với Dreamweaver
Giáo trình thiết kế web - Thiết kế web với Dreamweaver
KhanhPham
 
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâuTự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
KhanhPham
 
Học Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkHọc Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend Framework
KhanhPham
 
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
KhanhPham
 
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
KhanhPham
 
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
KhanhPham
 
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)
KhanhPham
 
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
KhanhPham
 
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
KhanhPham
 
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
KhanhPham
 
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
KhanhPham
 
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong WordpressTài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
KhanhPham
 
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
KhanhPham
 

More from KhanhPham (20)

Wp hoi-thao-phan-quyen
Wp hoi-thao-phan-quyenWp hoi-thao-phan-quyen
Wp hoi-thao-phan-quyen
 
The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress Meetup
 
Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng ViệtMysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
 
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10
 
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9
Zend Framework 2.0:  Upload file và Multi upload files trong ZF2 - Bài 9Zend Framework 2.0:  Upload file và Multi upload files trong ZF2 - Bài 9
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9
 
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8 Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
 
Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7
Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7
Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7
 
Giáo trình thiết kế web - Thiết kế web với Dreamweaver
Giáo trình thiết kế web - Thiết kế web với DreamweaverGiáo trình thiết kế web - Thiết kế web với Dreamweaver
Giáo trình thiết kế web - Thiết kế web với Dreamweaver
 
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâuTự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
 
Học Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkHọc Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend Framework
 
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
 
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
 
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
 
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)
 
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
 
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
 
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
 
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
 
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong WordpressTài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
 
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
 

Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)

  • 2. Vấn đề 01: Kiểm tra sự tồn tại của tập tin, thư mục Sử dụng hàm file_exist($fileName) để kiểm tra sự tồn tại của tập tin, thư mục • $filename: tên (đường dẫn) tập tin, thư mục cần kiểm tra • Kết quả trả về true  Tồn tại • Kết quả trả về false  Không tồn tại
  • 3. Vấn đề 02: Xem một số thông tin cơ bản của tập tin, thư mục • filetype($fileName) trả về kiểu của $filename (tập tin hoặc thư mục) • filesize($fileName) trả về dung lượng của $filename (đơn vị bytes) • is_readable($fileName) kiểm tra $fileName có được quyền đọc hay không ? • is_writeable($fileName) kiểm tra $fileName có được quyền ghi hay không ? • is_executable($fileName) kiểm tra $fileName có được quyền thực thi hay không ?
  • 4. Vấn đề 03: Các hàm lấy thông tin từ đường dẫn • basename($path) trả về kết quả là tên của tập tin từ đường dẫn $path • dirname($path) trả về tên thư mục tại đường dẫn $path • pathinfo ($path, $options) trả về một mảng các thông tin từ đường dẫn $path o dirname o basename o extension
  • 5. Vấn đề 04: Thống kê số dòng, số từ và số ký tự trong file • file ($fileName) đọc tập tin $fileName thành một mảng, mỗi dòng trong tập tin $fileName tương ứng với một phần tử của mảng • file_get_contents ($fileName) đọc tập tin $fileName thành một chuỗi
  • 6. Vấn đề 05: Ghi nội dung vào tập tin với file_put_contents • Sử dụng hàm file_put_contents ($fileName, $data, $mod) để ghi nội dung $data vào tập tin $fileName • Quá trình thực thi của hàm file_put_contents(): Tạo ra tập tin nếu tập tin đó chưa tồn tại  Mở tập tin  Ghi nội dung  Đóng tập tin • Nếu $mod = FILE_APPEND nội dung cũ ở tập tin được giữ, nội dung mới được ghi vào cuối tập tin • Nếu ghi thành công, trả về tổng số ký tự đã ghi ngược lại trả về FALSE
  • 7. Vấn đề 06: Đổi tên tập tin, thư mục • Sử dụng hàm rename ($oldName, $newName) để đổi tên tập tin, thư mục từ giá trị $oldName thành giá trị $newName (lưu ý thay đổi cả phần đường dẫn) • Hàm trả về kết quả TRUE nếu rename thành công, trả về kết quả FALSE nếu rename không thành công
  • 8. Vấn đề 07: Sao chép tập tin • Sử dụng hàm copy ($sourceFile, $destinationFile) để copy nội dung từ tập tin $sourceFile sang tập tin $destinationFile • Hàm trả về kết quả TRUE nếu copy thành công, trả về kết quả FALSE nếu copy không thành công • Làm sao copy một thư mục nào đó ?
  • 9. Vấn đề 08: Khái quát về vấn đề phân quyền tập tin, thư mục (P1) Xét mối quan hệ giữa người dùng và một tập tin, thư mục. Chúng ta có 3 nhóm sau đây: • Owner/User: Người sở hữu, chủ tài khoản. • Group: Các tài khoản cùng hoạt động trong một nhóm. • Other/Guest: Ngoài 2 đối tượng trên.
  • 10. Vấn đề 08: Khái quát về vấn đề phân quyền tập tin, thư mục (P2) Xét về quyền thao tác giữa người dùng và một tập tin. Chúng ta có 3 loại quyền sau: • Read: có thể đọc nội dung trong tập tin • Write: có thể thay đổi nội dung của tập tin • Execute: có thể mở tập tin (khởi chạy chương trình nếu là một tập tin ứng dụng)
  • 11. Vấn đề 08: Khái quát về vấn đề phân quyền tập tin, thư mục (P3) Xét về quyền thao tác giữa người dùng và một thư mục. Chúng ta có 3 loại quyền sau: • Read: Có thể duyệt nội dung trong thư mục (Xem trong thư mục có gì, phải đi kèm với quyền Execute). • Write: Có thể thay đổi nội dung trong thư mục này (Thêm, xóa, sửa, đổi tên thư mục/tập tin bên trong thư mục này). • Execute: Có thể mở thư mục (Mở thư mục ra, nhưng không thể thấy gì trong thư mục này nếu không đi kèm với quyền Read).
  • 12. Vấn đề 08: Khái quát về vấn đề phân quyền tập tin, thư mục (P4) Cấp quyền truy cập cho tập tin, thư mục: • Quyền cho một tập tin, thư mục thường được biểu diễn tương ứng với một số nguyên có 3 chữ số xyz o Số thứ nhất x - đại diện cho quyền hạn của Owner/User. o Số thứ hai y - đại diện cho quyền hạn của Group. o Số thứ ba z - đại diện cho quyền hạn của Other/Guest.
  • 13. Vấn đề 08: Khái quát về vấn đề phân quyền tập tin, thư mục (P5) Giá trị của các chữ số xyz, quy định như sau: • Read = 4 • Write = 2 • Execute = 1  Read + Write + Execute = 4 + 2 + 1 = 7 (Toàn quyền)  Read + Execute = 4 + 1 = 7 (Chỉ có thể đọc và thực thu tập tin)
  • 14. Vấn đề 08: Khái quát về vấn đề phân quyền tập tin, thư mục (P6) Một tập tin được cấu hình với quyền 754, như vậy chúng ta có các thông tin sau: • Chữ số đầu tiên 7 = 4 + 2 + 1  quyền: toàn quyền  Owner/User có toàn quyền • Chữ số thứ hai 5 = 4 + 1  quyền: đọc và thực thi  Group có quyền đọc và thực thi • Chữ số thứ ba 4  quyền: đọc  Other/Guest chỉ có quyền đọc tập tin.
  • 15. Vấn đề 09: Tạo – Xóa – Cấp quyền cho thư mục • Sử dụng hàm mkdir ($path, $mode) để tạo ra thư mục ở đường dẫn $path, với quyền truy cập vào thư mục là $mode • Sử dụng hàm rmdir ($path) để xóa thư mục ở đường dẫn $path • Sử dụng hàm fileperms ($dirName) để xem quyền truy cập đối với thư mục $dirName • Sử dụng hàm chmod ($dirName, $mod) để cấp quyền truy cập cho thư mục $dirName
  • 16. Vấn đề 10: Tạo – Xóa – Cấp quyền cho tập tin • Sử dụng hàm file_put_contents ($path, null) để tạo ra tập tin ở đường dẫn $path • Sử dụng hàm unlink ($path) để xóa tập tin ở đường dẫn $path • Sử dụng hàm fileperms ($fileName) để xem quyền truy cập đối với tập tin $fileName • Sử dụng hàm chmod ($fileName, $mod) để cấp quyền truy cập cho tập tin $fileName
  • 17. Vấn đề 11: Liệt kê danh sách tập tin và thư mục • Sử dụng hàm glob ($pattern) để lấy danh sách các tập tin và thư mục với tên thỏa $pattern • Sử dụng tham số thứ hai GLOB_ONLYDIR để kết quả trả về chỉ bao gồm các thư mục.
  • 18. Vấn đề 12: Tìm hiểu hàm parse_ini_file (1) • Cấu trúc tập tin *.ini
  • 19. Vấn đề 12: Tìm hiểu hàm parse_ini_file (2) • Sử dụng hàm parse_ini_file ($fileName) để đọc nội dung $fileName thành một mảng. • Lưu ý nếu muốn đọc luôn các phần section cần truyền giá trị TRUE vào tham số thứ hai
  • 20. Vấn đề 13: Một số định nghĩa về hệ thống cây thư mục (1)
  • 21. Vấn đề 13: Một số định nghĩa về hệ thống cây thư mục (2) • Root-directory: thư mục cao nhất trong cây thư mục và trên nó không còn có một thư mục nào khác. Root-directory được đánh dấu với ký hiệu / • Working-directory (current directory): thư mục mà người sử dụng đang làm việc • Parent-directory: thư mục cha - thư mục nằm ngay phía trên một thư mục khác trong cây thư mục • Path (đường dẫn): mỗi tệp tin hay thư mục trong hệ thống linux được chỉ định bởi một đường dẫn (để truy cập vào tập tin hay thư mục đó)
  • 22. Vấn đề 13: Phân biệt đường dẫn tuyệt đối – Đường dẫn tương đối • Đường dẫn tuyệt đối: o Là những đường dẫn được tính từ root (/), đi qua các thư mục khác cho đến tập tin hoặc thư mục đích o Khi chúng ta đang ở article.php, đường dẫn tuyệt đối đến các tập tin  style.css sẽ là /style/style.css  vi.php sẽ là /lib/language/vi.phpstyle.css o Thường được dùng với các hàm include, require để nhúng các tập tin .php vào một tập tin php nào đó hoặc dùng để khai báo thư mục chứa hình ảnh trên host
  • 23. Vấn đề 13: Phân biệt đường dẫn tuyệt đối – Đường dẫn tương đối • Đường dẫn tương đối: o Là những đường dẫn có điểm xuất phát là thư mục hiện tại (current diractory). o Khi chúng ta đang ở article.php, đường dẫn tương đối đến các tập tin  style.css sẽ là ../css/style.css  vi.php sẽ là /lib/language/vi.php o Thường được sử dụng để load các tập tin javascript, css và hình ảnh lên và hiển thị trong trang web
  • 24. Vấn đề 14: Thao tác với thư mục • getcwd() trả về thư mục hiện tại • realpath() trả về đường dẫn tuyệt đối của đường dẫn $path • chdir() thay đổi thư mục hiện tại • dir() mở một thư mục lên và thao tác với thư mục đó (3 thao tác read, rewind, close ) • opendir() mở một thư mục lên và thao tác với thư mục đó • closedir() đóng thư mục được mở bởi hàm opendir() • scandir() lấy danh sách các tập tin và thư mục của đường dẫn $path
  • 25. Vấn đề 15: Liệt kê cấu trúc tập tin thư mục đến cấp 2
  • 26. Bài tập: Một số yêu cầu bổ sung • Khi danh sách rỗng: hiển thị thông báo, ẩn button Delete File (index.php) • Thay đổi thông báo trong trường hợp Add và Edit File (add.php, edit.php) • Truyền ID của file chưa tồn tại: hiển thị thông báo (edit.php, delete.php) • Xóa nhiều file: Hiển thị một hộp thoại xác nhận lại yêu cầu xem người dùng có chắc chắn muốn xóa các file đó hay không ? (multy-delete.php)