Các thư mục bị xóa trong PHP bằng hàm rmdir[]. rmdir[] nhận một đối số duy nhất, tên của thư mục sẽ bị xóa. Việc xóa sẽ chỉ thành công nếu thư mục trống. Nếu thư mục chứa các tệp hoặc thư mục con khác thì việc xóa không thể thực hiện được cho đến khi các tệp và thư mục con đó cũng bị xóa
Tìm và thay đổi thư mục làm việc hiện tại
Không chắc rằng một ứng dụng web sẽ có thể thực hiện tất cả các tác vụ liên quan đến tệp của nó trong một thư mục. Vì lý do này, điều quan trọng là có thể tìm ra thư mục làm việc hiện tại và thay đổi sang thư mục khác từ bên trong tập lệnh PHP
Thư mục làm việc hiện tại có thể được xác định bằng hàm getCwd[]
Thư mục làm việc hiện tại có thể được thay đổi bằng hàm chdir[]. chdir[] lấy đối số duy nhất là đường dẫn của thư mục mới
"; chdir ["/tmp"]; $current_dir = getCwd[]; echo "Current directory is now $current_dir
"; ?>
Liệt kê các tập tin trong một thư mục
Các tệp trong một thư mục có thể được đọc bằng hàm PHP scandir[]. scandir[] nhận hai đối số. Đối số đầu tiên là đường dẫn thư mục được quét. Đối số tùy chọn thứ hai chỉ định cách sắp xếp danh sách thư mục. Nếu đối số là 1, danh sách được sắp xếp ngược theo thứ tự bảng chữ cái. Nếu đối số bị bỏ qua hoặc được đặt thành 0, danh sách được sắp xếp theo thứ tự bảng chữ cái
Hướng dẫn này sẽ chỉ cho bạn cách có thể tạo một thư mục trong PHP bằng cách sử dụng hàm mkdir
Hàm mkdir trong PHP là một hàm đơn giản nhưng mạnh mẽ cho phép bạn tạo một thư mục ở bất kỳ đâu mà tác nhân đang chạy có quyền
Với cách sử dụng đơn giản nhất, bạn có thể tạo một thư mục trong đường dẫn đã chỉ định. Tuy nhiên, bạn thậm chí có thể sử dụng chức năng này để tạo toàn bộ cây thư mục bằng cách bật chức năng “
8” của nóNó là một phần cốt lõi của PHP và hữu ích cho nhiều trường hợp bạn cần tạo thư mục một cách nhanh chóng. Ví dụ: bạn có thể muốn tạo thư mục dựa trên ngày hiện tại khi xử lý tải lên trong PHP
Bạn có thể quan tâm đến chức năng của từng tham số này, vì vậy hãy nhanh chóng xem qua chúng. Chúng tôi sẽ cho bạn thấy một phần khá lớn của những điều này trong các phần sau
Định nghĩa Hàm mkdir trong PHP
Trước khi tiếp tục, trước tiên chúng ta nên tìm hiểu cách định nghĩa hàm mkdir trong PHP
Dưới đây bạn có thể thấy chính xác hàm mkdir được định nghĩa như thế nào trong PHP. Nó có bốn tham số, nhưng chỉ có tham số đầu tiên được yêu cầu để sử dụng chức năng của nó
Hàm này sẽ trả về
9, nếu thư mục được tạo thành công và
0 nếu không thành côngmkdir[
string $directory,
int $mode = 0777,
bool $recursive = false,
?resource $context = null
]
Bạn có thể quan tâm đến chức năng của từng tham số này, vì vậy hãy nhanh chóng xem qua chúng. Chúng tôi sẽ đưa ra các ví dụ về cách sử dụng từng tham số sau trong hướng dẫn này
Tham số thư mục
Tham số “
1” là bắt buộc và được sử dụng để chỉ định đường dẫn thư mục mà bạn muốn tạo bởi chức năng nàyHàm mkdir trong PHP có hỗ trợ đầy đủ cho cả đường dẫn tương đối [
2] và đường dẫn tuyệt đối [
0]Tuy nhiên, tốt nhất là sử dụng các đường dẫn tuyệt đối ở đây vì thư mục làm việc hiện tại có thể không như bạn nghĩ
Nếu bạn muốn tạo một thư mục liên quan đến tệp PHP hiện tại, bạn sẽ muốn nối thêm thư mục của mình với “
1“. Hằng số này chứa thư mục làm việc hiện tạiVí dụ: sử dụng ví dụ về đường dẫn tương đối trước đây, chúng tôi sẽ viết “
2“Chế độ tham số
Sử dụng tham số “
3”, bạn có thể đặt các quyền sẽ được gán cho thư mục khi nó được tạoTheo mặc định, PHP sẽ tạo thư mục có quyền “
4” truy cập rộng nhất có thể. Chủ sở hữu, nhóm và những người khác sẽ có toàn quyền truy cập vào thư mục nàyGiá trị chế độ thường phải được xác định là bát phân, nghĩa là bạn nên sử dụng định dạng sau
- Số đầu tiên phải luôn là số 0
- Số thứ hai chỉ định quyền cho chủ sở hữu
- Số thứ ba đặt quyền cho nhóm sở hữu thư mục
- Cuối cùng, số thứ tư đặt quyền cho bất kỳ ai khác
Giá trị cho từng nhóm quyền này được tính bằng cách cộng các số sau
- 1 = Thực thi quyền
- 2 = Quyền ghi
- 4 = Quyền đọc
Ví dụ: nếu chúng tôi chỉ muốn chủ sở hữu nhóm của mình có quyền đọc và ghi, chúng tôi sẽ sử dụng “
5” cho nhóm đóBạn có thể tìm hiểu thêm về cách Linux xử lý các quyền bằng cách xem hướng dẫn lệnh chmod của chúng tôi
Xin lưu ý rằng nếu bạn đang sử dụng hệ thống dựa trên Windows, tùy chọn này sẽ không làm gì cả
Tham số đệ quy
Theo mặc định, chức năng mkdir của PHP sẽ chỉ cố gắng tạo phân đoạn cuối cùng trong một đường dẫn
Ví dụ với đường dẫn “
6“, PHP sẽ chỉ tạo thư mục kết thúc “
7”. Nếu các thư mục trước đó không tồn tại thì chức năng sẽ thất bạiBạn có thể đặt tham số “
8” thành
9 để giải quyết vấn đề này. Khi được đặt thành
9, PHP sẽ chạy qua từng phần của đường dẫn, tạo chúng nếu chúng chưa tồn tạiThông số bối cảnh
Tham số bối cảnh là tùy chọn và cho phép bạn kiểm soát xử lý tệp mà hàm mkdir của PHP sẽ sử dụng
Trong hầu hết các trường hợp, bạn sẽ không cần sử dụng tham số này. Nó chỉ hữu ích khi bạn cần kiểm soát luồng tệp
Cách sử dụng cơ bản của Hàm mkdir trong PHP
Chúng ta hãy bắt đầu với cách cơ bản nhất để sử dụng hàm mkdir trong PHP
Cách đơn giản nhất để sử dụng mkdir là chuyển vào thư mục mà bạn muốn tạo. Hàm sẽ cho rằng các giá trị mặc định sẽ được sử dụng cho tất cả các tùy chọn khác
Với ví dụ sau chúng ta sẽ tạo thư mục “______111“
Vì đệ quy được đặt thành false theo mặc định, phần “
7” của thư mục này phải tồn tại. Nếu không, mkdir sẽ trả về
0 và không thể tạo thư mụcTương tự như vậy, vì chúng tôi không đặt tham số “
3”, quyền mặc định của “
4” được đặt khi thư mục này được tạoĐặt quyền khi tạo thư mục bằng mkdir trên PHP
Hàm mkdir trong PHP cho phép bạn đặt quyền trên các thư mục mà nó tạo bằng cách sử dụng tùy chọn chế độ của nó
Bạn vẫn cần chỉ định thư mục bạn muốn tạo cho tham số đầu tiên. Đối với ví dụ dưới đây, chúng tôi sử dụng thư mục “
"; chdir ["/tmp"]; $current_dir = getCwd[]; echo "Current directory is now $current_dir11“
"; ?>
Chúng ta có thể đặt quyền được gán cho thư mục mới này với tham số thứ hai. Đây cần phải là một giá trị bát phân
- Số đầu tiên phải là
"; chdir ["/tmp"]; $current_dir = getCwd[]; echo "Current directory is now $current_dir
17 vì giá trị này là một số bát phân
"; ?> - Số thứ hai là đặc quyền của người dùng. Trong ví dụ dưới đây, chúng tôi đặt giá trị này thành
"; chdir ["/tmp"]; $current_dir = getCwd[]; echo "Current directory is now $current_dir
18.
"; ?>
Việc sử dụng 7 mang lại cho người dùng các đặc quyền thực thi ["; chdir ["/tmp"]; $current_dir = getCwd[]; echo "Current directory is now $current_dir
19], viết [
"; ?>
00] và đọc [mkdir[ string $directory, int $mode = 0777, bool $recursive = false, ?resource $context = null ]
01].mkdir[ string $directory, int $mode = 0777, bool $recursive = false, ?resource $context = null ]
- Với số thứ ba, chúng tôi đặt quyền cho nhóm sở hữu tệp.
Với ví dụ của chúng tôi, chúng tôi sẽ đặt số này thành
02. Điều này cấp cho nhóm quyền thực thi [mkdir[ string $directory, int $mode = 0777, bool $recursive = false, ?resource $context = null ]
"; chdir ["/tmp"]; $current_dir = getCwd[]; echo "Current directory is now $current_dir
19] và quyền đọc [
"; ?>
01].mkdir[ string $directory, int $mode = 0777, bool $recursive = false, ?resource $context = null ]
- Số cuối cùng và số thứ tư cho phép bạn đặt quyền cho tất cả người dùng khác.
Giống như quyền của nhóm, chúng tôi cũng đặt quyền này thành 5 cho ví dụ của chúng tôi.
"; chdir ["/tmp"]; $current_dir = getCwd[]; echo "Current directory is now $current_dir1
"; ?>
Khi bit này của PHP được thực thi, nó sẽ sử dụng hàm mkdir để tạo thư mục “
"; chdir ["/tmp"]; $current_dir = getCwd[]; echo "Current directory is now $current_dir11“, với quyền “
"; ?>
mkdir[
string $directory,
int $mode = 0777,
bool $recursive = false,
?resource $context = null
]
06“Tạo thư mục mẹ bằng Hàm mkdir của PHP
Tham số cuối cùng mà chúng tôi sẽ chỉ cho bạn cách sử dụng là tham số đệ quy. Đây là một trong những hàm hữu ích nhất của hàm mkdir của PHP, vì nó cho phép bạn tạo toàn bộ nhánh thư mục trong một lệnh gọi hàm duy nhất
Để sử dụng cái này, trước tiên chúng ta phải xác định thư mục và chế độ. Chúng tôi sẽ sử dụng “
mkdir[
string $directory,
int $mode = 0777,
bool $recursive = false,
?resource $context = null
]
07” cho thư mục của chúng tôi và đối với chế độ, chúng tôi sẽ sử dụng mặc định “
4“Bây giờ tất cả những gì chúng ta cần làm là đặt tham số [đệ quy] thứ ba thành true
mkdir[
string $directory,
int $mode = 0777,
bool $recursive = false,
?resource $context = null
]
0Với “
9” được chuyển vào tham số đệ quy, mkdir sẽ đảm bảo rằng mỗi phần của thư mục được tạoTạo một thư mục nếu nó không tồn tại bằng mkdir trong PHP
Mặc dù hàm mkdir của PHP giúp tạo một thư mục nhưng nó không thực hiện bất kỳ kiểm tra nào để xem thư mục đó có tồn tại hay không trước khi kích hoạt
Khi được sử dụng trên một thư mục đã tồn tại, hàm mkdir sẽ đưa ra cảnh báo cho biết rằng nó đã tồn tại
Để tránh cảnh báo này xảy ra trong mã, chúng ta có thể sử dụng hàm “
10” của PHP. Sử dụng chức năng này, chúng tôi có thể kiểm tra xem thư mục có tồn tại hay không trước khi tiếp tụcDưới đây chúng ta có một câu lệnh điều kiện PHP if đơn giản sử dụng hàm
11 để kiểm tra xem thư mục có tồn tại [
12] khôngChỉ khi hàm
10 của tệp trả về
0 thì lệnh gọi hàm
15 của chúng tôi mới được chạy và thư mục của chúng tôi, “
16” được tạo
1Phần kết luận
Đến cuối hướng dẫn này, chúng tôi hy vọng rằng bây giờ bạn đã hiểu cách thức hoạt động của hàm mkdir trong PHP
Chức năng này rất hữu ích vì nó cho phép bạn tạo các thư mục trong PHP. Nó thậm chí còn cho phép bạn đặt quyền trên các thư mục mới và tạo đệ quy bất kỳ thư mục nào trong đường dẫn được cung cấp
Tất nhiên, người dùng mà PHP đang chạy bên dưới sẽ cần quyền để tạo thư mục, vì vậy hãy đảm bảo rằng bạn đã đặt quyền của mình một cách chính xác