Avatar ·

如何在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/`),又该怎么办?