كيفية إنشاء مجلد في PHP إذا لم يكن موجودًا بعد؟
مرحبًا بالجميع! أنا مطور PHP مبتدئ وأكتب موقعًا على WordPress. واجهت مشكلة: أريد حفظ الصور التي يرفعها المستخدمون في مجلد منفصل لكل مستخدم. على سبيل المثال، لدي معرف المستخدم، وأريد إنشاء مجلد مثل `/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()`؟ وماذا لو كنت بحاجة إلى إنشاء مجلدات متعددة المستويات؟