[دالة] scandir
مدرج تحت قسم: دروس
29
مارس
2008
سنتعرف على دالة scandir التي أتت مع نسخة php 5. الدالة تصبح مصفوفة تحمل أسماء الملفات بمجرد اعطائها اسم المجلد
لنفرض ان لدينا مجلد باسم php5، قبل php 5 عندما تريد استخراج أسماء الملفات الموجودة في مجلد ما سيكون لازاما عليك كتابة هذا الكود
$dir="php5"; // اسم المجلد
$dir2=opendir($dir); // مقبض المجلد
while( $read=readdir($dir2) )
{
echo $read.'<br />'; // طباعة أسماء الملفات
}
closedir($dir2);
الآن سنجرب دالة scandir
$dir="php5"; // اسم المجلد $dir2=scandir($dir); // حفظ أسماء الملفات في مصفوفة echo'<pre>'; print_r($dir2); echo'</pre>';
وهذه طريقة طباعة أسماء الملفات بشكل عادي
$dir="php5"; // اسم المجلد
$dir2=scandir($dir); // حفظ أسماء الملفات في مصفوفة
for($i=0;$i<count($dir2);$i++)
{
echo '<br />'.$dir2[$i];
}
كما يمكن تجاهل . و ..
بهذا الكود
$dir="php5"; // اسم المجلد
$dir2=scandir($dir); // حفظ أسماء الملفات في مصفوفة
for($i=0;$i<count($dir2);$i++)
{
if( $dir2[$i] == "." or $dir2[$i] == ".." ) // اذا كانت القيمة تساوي اي من النقطة او النقطتين استمر ولا تطبعهما
{
continue;
}
echo '<br />'.$dir2[$i];
}
فوائد الدرس:
- معرفة طريقة التعامل مع الملفات
- معرفة استخدام اكثر ممن طريقة
- معرفة استخدام احسن الطرق للوصول الى المبتغى
ولا تنسى أن دالة scandir تعمل فقط على php5
والسلام عليكم


the last two code examples are invalid , bad syntax for the ” for ” statement
بارك الله فيك اخى .. موضوع جميل وداله مفيده
لى ملاحظه : رأيت انك كتبت :
كما يمكن تجاهل . و ..
بهذا الكود ……….
لاحظت عدم وجود اى اختلاف بين الكود الأول والثانى الذى من المفترض انه سيتجاهل شىء ما
ايضاً لاحظت عدم وجود اى كود “print أو echo” للطباعه .. عندما ذكرت امر طباعة اسماء الملفات
واظن ان هذه اخطاء اكتابيه ليس الا :)
تحيتى مره أخرى .. وبارك الله فيك
أخي الكريم كأنه وفي خطأ في كتابة الكود !
لازم يكون هيك اعتقد
[code]
$dir="php5"; // اسم المجلد
$dir2=scandir($dir); // حفظ أسماء الملفات في مصفوفة
$c = count($dir2); // هنا نعرف عدد عناصر المصفوفة
for ($i=0;$i<$c;$i )
echo $dir2[$i];
[code]
تم إصلاح المشكلة
شكراً لكم
جميل وفقك الله
lol, ironically I developed a function that does just that a while ago. This should make things easier, thanks for the heads up =)