Để tạo một thư mục nếu nó không tồn tại
Xem xét môi trường của câu hỏi.
- WordPress.
- Máy chủ lưu trữ web.
- Giả sử Linux của nó không chạy Windows.
Và trích dẫn từ: http://php.net/manual/en/feft.mkdir.php
bool mkdir (chuỗi $ pathname [, int $ mode = 0777 [, bool $ recursive = FALSE [, resource $ bối cảnh]]])
Hướng dẫn nói rằng tham số bắt buộc duy nhất là $pathname
!
vì vậy, chúng ta có thể chỉ cần mã:
<?php
error_reporting(0);
if(!mkdir('wp-content/uploads')){
// todo
}
?>
Giải trình:
Chúng tôi không phải vượt qua bất kỳ tham số nào hoặc kiểm tra xem thư mục có tồn tại hay thậm chí vượt qua tham số chế độ trừ khi cần thiết; vì những lý do sau đây:
- Lệnh sẽ tạo thư mục với quyền 0755 (Quyền mặc định của thư mục lưu trữ được chia sẻ) hoặc 0777 mặc định của lệnh.
mode
bị bỏ qua trên Windows Hosting chạy PHP .
- Đã có
mkdir
lệnh đã xây dựng trong trình kiểm tra nếu thư mục tồn tại; vì vậy chúng ta chỉ cần kiểm tra trả về Đúng | Sai; và nó không phải là một lỗi, nó chỉ là một cảnh báo và Cảnh báo bị tắt trong các máy chủ lưu trữ theo mặc định.
- Theo tốc độ, điều này sẽ nhanh hơn nếu cảnh báo bị vô hiệu hóa.
Đây chỉ là một cách khác để xem xét câu hỏi và không yêu cầu một giải pháp tốt hơn hoặc tối ưu nhất.
Đã thử nghiệm trên PHP7, Máy chủ sản xuất, Linux
if (!file_exists('path/to/directory')) { mkdir('path/to/directory', 0777, true); }