如何在PHP中创建不存在的文件夹?
大家好!我是一名PHP初学者,正在用WordPress开发网站。我遇到了一个问题:我想将用户上传的图片保存到每个用户的单独文件夹中。例如,我有用户ID,想创建类似 `/uploads/user_123/` 的文件夹。
我写了这样的代码:
```php
$user_id = 123;
$upload_dir = wp_upload_dir();
$user_folder = $upload_dir['basedir'] . '/user_' . $user_id . '/';
if (!file_exists($user_folder)) {
mkdir($user_folder);
}
// 然后复制文件...
move_uploaded_file($temp_file, $user_folder . '/avatar.jpg');
```
但问题是,如果文件夹已经存在,`mkdir()` 会发出警告 "Warning: mkdir(): File exists"。我知道可以用 `@` 抑制它,但听说这是不好的做法。
如何在PHP中正确创建不存在的文件夹,而不产生错误和警告?也许有比我的 `file_exists()` 更可靠的方法?如果需要创建多级目录(例如 `/uploads/2024/03/`),又该怎么办?