انتقل إلى محتوى الدرس

Managing Octal Permissions with chmod تعديل وقراءة الصلاحيات بـ chmod و fileperms و clearstatcache

افحص مساحة القرص وأحجام الملفات وتواريخ تعديلها، وأدر الصلاحيات بـ chmod وfileperms، وانسخ وانقل واحذف الملفات بأمان في PHP 8.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تُضبط صلاحيات الملفات عبر الدالة chmod() باستخدام رقم ثماني (Octal)، وتُفحص عبر fileperms() مع تحديث ذاكرة الحالة بـ clearstatcache().

  • مرّر دائماً رقماً ثمانياً يبدأ بصفر على اليسار (مثل 0644 أو 0600)، ولا تمرّره كنص "0644" أو رقم عشري 644.
  • نسّق القيمة الناتجة من fileperms($path) عبر substr(sprintf("%o", fileperms($path)), -4) لاستخراج الأرقام الثمانية الأربعة.
  • نظراً لأن PHP يخزن بيانات حالة الملفات مؤقتاً لتسريع الأداء، استدعِ clearstatcache(true, $path) بعد تعديل الصلاحيات أو الحجم.

تضبط chmod($tmp, 0644) صلاحيات القراءة والكتابة، وتنعش clearstatcache(true, $tmp) الذاكرة المؤقتة، وتنسق sprintf("%o", ...) الصلاحيات الثمانية.

PHP
<?php
$tmp = sys_get_temp_dir() . '/ct_perm.txt';
file_put_contents($tmp, "secret");
chmod($tmp, 0644);
clearstatcache(true, $tmp);
$octal = substr(sprintf('%o', fileperms($tmp)), -4);
echo "Octal length: " . strlen($octal) . " | Readable: " . (is_readable($tmp) ? 'yes' : 'no') . "\n";
unlink($tmp);