Đối với các ngôn ngữ lập
trình, làm việc với thư mục và tập tin là điều không tránh khỏi. Bài học
hôm nay chúng ta cùng tìm hiểu một số hàm làm việc với thư mục trong
PHP
1, mkdir( $pathname, $mode )
Hàm mkdir cho phép chúng ta tạo thư mục mới
$pathname: Đường dẫn tới thư mục cần tạo
$mode: Gán quyền truy cập dữ liệu, mặc định là 0777 (toàn quyền: ghi, xóa, sửa,…). Xem thêm thông số trong hàm chmod().
Ví dụ: Tạo thư mục images trong thư mục upload
1 | mkdir ( "uploads/images" ); |
2, chmod( $dir, $mode )
Phân quyền cho thư mục, tuy nhiên vì lý do bảo mật, các nhà cung cấp
hosting thường không cho phép sử dụng hàm chmod, xem thêm về hàm
chmod().
3, is_dir( $path_to_dir )
Kiểm tra xem có phải là thư mục hay không.
Ví dụ: kiểm tra xem images có phải là thư mục hay không hay không?
1 | if ( is_dir ( "uploads/images" ) ) { |
2 | echo "Tồn tại thư mục images" ; |
5 | echo "Không tồn tại thư mục images" ; |
4, rmdir( $path_to_dir )
Xóa thư mục được chỉ định, chú ý: thư mục xóa phải rỗng (không chứa bất kỳ thư mục và tập tin nào khác).
Ví dụ:
1 | if ( is_dir ( "uploads/images" ) ) { |
2 | rmdir ( "uploads/images" ); |
3 | echo "Đã xóa thư mục images" ; |
5, getcwd(): Lấy đường dẫn thư mục hiện tại
Ví dụ:
Kết quả: C:\AppServ\www\khoahoc
6, dirname( $path_to_dir_or_file )
Lấy được dẫn thư mục cha của thư mục hoặc tập tin đang làm việc
Ví dụ:
Lấy đường dẫn của thư mục chứa file đang làm việc
1 | echo dirname( __file__ ); |
Kết quả: C:\AppServ\www\khoahoc
Chú ý:
__file__ là hằng có giá trị là đường dẫn tập tin hiện tại
7, opendir( $path_to_dir ): Mở một thư mục để làm việc
8, readdir( $handle ): Đọc thông tin handle từ thư mục đã mở
Ví dụ: Viết code hiển thị tất cả tập tin và thư mục hiện có trong thư mục uploads
01 | $handle = opendir( "uploads" ); |
03 | while ( $file = readdir( $handle ) ) { |
04 | if ( $file != '.' && $file != '..' ) { |
05 | if ( is_dir ( "uploads/" . $file ) ) |
06 | $dir_or_file = 'Thu muc: ' ; |
08 | $dir_or_file = 'Tap tin: ' ; |
09 | echo $dir_or_file . $file . "<br>" ; |
9, scandir( $path_to_dir ):
Trả về mảng danh sách file và thư mục hiện có trong thư mục
Ví dụ:
1 | $handle = scandir( "uploads" ); |
Kết quả:
Array ( [0] => . [1] => .. [2] => file 1.txt [3] => file 2.txt [4] => file 3.txt [5] => img )