Como criar uma pasta em PHP se ela ainda não existe?
Olá a todos! Sou um desenvolvedor PHP iniciante e estou escrevendo um site em WordPress. Tive um problema: quero salvar imagens enviadas por usuários em uma pasta separada para cada usuário. Por exemplo, tenho o ID do usuário e quero criar uma pasta como `/uploads/user_123/`.
Escrevi este código:
```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);
}
// Depois copio o arquivo...
move_uploaded_file($temp_file, $user_folder . '/avatar.jpg');
```
Mas o problema é que, se a pasta já existe, `mkdir()` emite um aviso "Warning: mkdir(): File exists". Entendo que isso pode ser suprimido com `@`, mas ouvi dizer que é uma má prática.
Como criar uma pasta em PHP corretamente se ela ainda não existe, sem erros e avisos? Existe uma maneira mais confiável do que minha solução caseira com `file_exists()`? E como lidar se for necessário criar subpastas aninhadas?