الدالة mkdir()‎ في PHP

من موسوعة حسوب
< PHP
مراجعة 11:51، 24 أبريل 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (إضافة محتويات الصفحة.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

(PHP 4, PHP 5, PHP 7)

تنشئ الدالة mkdir()‎ مجلَّدًا جديدًا.

الوصف

bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = FALSE [, resource $context ]]] )

تحاول هذه الدالة إنشاء مجلَّد جديد في المسار pathname المُعطى.

المعاملات

pathname

مسار المجلَّد المُراد إنشاؤه.

mode

أذونات المجلَّد الجديد، وقيمة هذا المعامل الإفتراضيَّة هي 0777 أي أوسع مجال لأذونات الوصول للمجلَّد. للمزيد من المعلومات حول الأذونات، راجع صفحة الدالة chmod()‎.

ملاحظة: يُتجاهل المعامل mode على منصات ويندوز.

الجدير بالملاحظة أنَّه يجب عليك غالبًا تمثيل الأذونات المُختارة باستعمال الأرقام في النظام الثماني إذ يجب بناءً على ذلك البدء بالرقم 0 دومًا. يمكن أيضًا تعديل الأذونات باستعمال القيمة umask الحاليَّة التي يمكن تغييرها باستخدام الدالة umask()‎.

recursive

السماح بإنشاء مجلَّدات متشعِّبة -مجلَّد داخل مجلَّد آخر- في المسار pathname المعطى.

context

ملاحظة: أُضيف دعم المحتوى منذ إصدار PHP 5.0.0. راجع قسم المجرى (stream) للمزيد من الشرح عن المحتوى (context).

القيم المعادة

تُعاد القيمة TRUE عند نجاح العمليَّة، أو القيمة FALSE عند فشلها.

أمثلة

المثال 1: استعمال الدالة mkdir()‎

<?php

mkdir("/path/to/my/dir", 0700);

?>

المثال 2: استعمال الدالة mkdir()‎ مع المعامل recursive

<?php
// البنية المطلوبة للمجلد
$structure = './depth1/depth2/depth3/';

//mkdir() إلى الدالة recursive يجب من أجل إنشاء مجلدات ذات بنية متشعبة تمرير قيمة المعامل

if (!mkdir($structure, 0777, true)) {
    die('Failed to create folders...');
}

// ...
?>

الأخطاء والاستثناءات

سيُولَّد خطأ من المستوى E_WARNING إن كان المجلَّد المراد إنشاؤه موجودًا مسبقًا.

سيُولَّد خطأ من المستوى E_WARNING إن كنت لا تملك صلاحيات لإنشاء المجلَّد في المسار المعطى، أي قد لا تسمح لك الأذونات بذلك.

ملاحظات

  • ستُخزَّن نتيجة هذه الدالة. راجع الدالة clearstatcache()‎ للمزيد من التفاصيل.
  • يمكن أن تُستعمل هذه الدالة بدءًا من إصدار PHP 5.0.0 مع بعض بروتوكلات الروابط (URL wrappers).

انظر أيضًا

  • الدالة is_dir()‎: تتحقَّق إن كان مسار الملف أو المجلَّد المُمرَّر إليها مجلدًا.
  • الدالة rmdir()‎: تحذف مجلَّدًا محدَّدًا.

مصادر