السلام عليكم ورحمة الله وبركاته
كالعادة إخوتي الكرام آتيكم بدالة جديدة في لغة PHP التي صرت أعدها من أهم لغات البرمجة وخاصة في برمجة تطبيقات الويب ..
على كل حال، دالتنا لهذا اليوم تعرض محتويات مجلد من ملفات ، أي تعرض أسماء الملفات الموجودة في مجلد معين..
هذه الدالة هي readdir() التي ظهرت في PHP3 وفي PHP4 من الإصدارة PHP4.0.0 فما فوق
في البداية أود أن أخبركم أن هذه الدالة تعود باسم الملف التالي بأي شكل ،، وهي لا تأتي بأسماء الملفات تبعاً لترتيب مخصص وإنما بأي شكل..!!
سوف نبدأ بمثال يعرض لنا جميع أسماء ملفات المجلد الحالي:
ملاحظة: سيرد في المثال إشارة ==! أرجو أن تكونوا على علم بأن هذه الإشارة ظهرت منذ إصدارة PHP4.0.0 فقط فهي غير موجودة في الإصدارات الأقدم..!!
كود PHP:
<?
$handle=opendir('.');
echo "مقبض المجلد: $handle<BR>";
echo "أسماء الملفات في هذا المجلد:<BR>";
while (false !== ($file = readdir($handle))) {
echo "<a href='$file'>$file</a><BR>";
}
closedir($handle);
?>
علماً بأن المثال يحتوي على دوال أخرى مثل opendir التي تعود بمقبض فتح المجلد المحدد وهو المجلد الحالي في المثال..
ثم نقوم بعرض الملف التالي للملف الحالي ما دامت قيمة readdir لا تساوي false حيث لم ينتهي البرنامج من عرض جميع الملفات ..
وفي النهاية نقوم بإغلاق مقبض الاتصال عن طريق الدالة closedir ممررين إليها مقبض المجلد المخزن في المتغير $handle ..
لاحظ أن دالة readdir ستقوم بشكل تلقائي عرض المدخل (.) والمدخل (..) وسيعتبران ملفين، يمكنك تجاهل هذين المدخلين عن طريق الكود التالي بدلاً من الكود الأول:
كود PHP:
<?
$handle=opendir('.');
echo "مقبض المجلد: $handle<BR>";
echo "أسماء الملفات في هذا المجلد:<BR>";
while (false !== ($file = readdir($handle))) {
if ($file!="." and $file!="..") {
echo "<a href='$file'>$file</a><BR>";
}
}
closedir($handle);
?>
على فكرة هذه الدالة جميلة جداً ومفيدة أيضاً جداً، يمكننا الحصول مثلاً عن طريقها على الملفات من نوع PHP فقط .. ما رأيكم أن نأخذ مثال على ذلك؟؟
إذاً، هيا بنا:
كود PHP:
<?
$handle=opendir('.');
echo "مقبض المجلد: $handle<BR>";
echo "أسماء ملفات البي إتش بي في هذا المجلد:<BR>";
while (false !== ($file = readdir($handle))) {
$length=strlen($file);
$from=$length-4;
$ex=substr($file,$from,4);
if ($ex==".php") {
echo "<a href='$file'>$file</a><BR>";
}
}
closedir($handle);
?>
يمكنك استبدال (php.) في السطر العاشر (10) من الكود بالامتداد الذي تريد عرض الملفات التي تنتهي به.. مثل mid. أو ram. أو htm. لاحظ أن هذه الامتدادات فقط 3 حروف..
ماذا لو أردنا عرض الملفات من نوع html. وهي متكونة من 4 حروف .. إذاً، يمكنك حينئذٍ تغيير الرقم 4 في السطر الثامن (8) والتاسع (9) إلى عدد أحرف الامتداد مع النقطة يعني html. تساوي 5 حروف مع النقطة، إذاً استدل رقم 4 في السطر 8 و 9 بالرقم 5 ثم استدل php. في السطر 10 بـ html. وهكذا ..
لا أريد التعمق أكثر من ذلك،، يمكنك استغلال أفكارك الجميلة مع أي دالة، وإن لم تنجح في تنفيذ المطلوب ،، فقط أخبرني ،، وإن شاء الله تنحل مشكلتك..
أتمنى أن تكونوا قد استفدتم جميعاً من هذا الدرس الجميل..
ترقبوا الدرس القادم إن شاء الله تعالى..
تحياتي لكم جميعاً