[دالة] 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];

}

فوائد الدرس:

  1. معرفة طريقة التعامل مع الملفات
  2. معرفة استخدام اكثر ممن طريقة
  3. معرفة استخدام احسن الطرق للوصول الى المبتغى

ولا تنسى أن دالة scandir تعمل فقط على php5

والسلام عليكم

للكاتب عبد الواحد البشيري

  • Share/Bookmark

التعليقات (6) على ”[دالة] scandir“

  1. the last two code examples are invalid , bad syntax for the ” for ” statement

  2. بارك الله فيك اخى .. موضوع جميل وداله مفيده

    لى ملاحظه : رأيت انك كتبت :
    كما يمكن تجاهل . و ..
    بهذا الكود ……….

    لاحظت عدم وجود اى اختلاف بين الكود الأول والثانى الذى من المفترض انه سيتجاهل شىء ما
    ايضاً لاحظت عدم وجود اى كود “print أو echo” للطباعه .. عندما ذكرت امر طباعة اسماء الملفات

    واظن ان هذه اخطاء اكتابيه ليس الا :)

    تحيتى مره أخرى .. وبارك الله فيك

  3. أخي الكريم كأنه وفي خطأ في كتابة الكود !
    لازم يكون هيك اعتقد
    [code]
    $dir="php5"; // اسم المجلد
    $dir2=scandir($dir); // حفظ أسماء الملفات في مصفوفة
    $c = count($dir2); // هنا نعرف عدد عناصر المصفوفة
    for ($i=0;$i<$c;$i )
    echo $dir2[$i];

    [code]

  4. تم إصلاح المشكلة
    شكراً لكم

  5. جميل وفقك الله

  6. lol, ironically I developed a function that does just that a while ago. This should make things easier, thanks for the heads up =)

أضف تعليقك




يمكنك استخدام الوسوم التالية في التعليق: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


* حقول مطلوبة