تغطية مباشرة لأحداث منتدى الإعلام الجديد المقام بمدينة أبوظبي
هل تقترح تمديد مسابقة سوالف كاست؟

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > PHP
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد  
 
LinkBack أدوات الموضوع
عضو سوبر نشيط
تاريخ التسجيل: Apr 2006-
#1 (permalink)  
[دالة] scandir


بسم الله الرحمان الرحيم

ستنعرف على دالة scandir التي اتت مع نسخة php 5
الدالة تصبح مصفوفة تحمل اسماء الملفات بمجرد اعطائها اسم الجلد

لنفرض ان لدينا مجلد باسم php5

قبل php 5 عندما تريد استخراج اسماء الملفات الموجودة في مجلد ما سيكون لازاما عليك كتابة هذا الكود

كود PHP:
$dir="php5"// اسم المجلد
$dir2=opendir($dir); // مقبض المجلد
 
while( $read=readdir($dir2) ) 
    {
    echo 
$read.'<br />'// طباعة اسماء الملفات
    
    
    
}
closedir($dir2); 


الأن سنجرب دالة scandir

كود PHP:
$dir="php5"// اسم المجلد
$dir2=scandir($dir); // حفظ اسماء الملفات في مصفوفة 

echo'<pre>';
print_r($dir2);
echo
'</pre>'
وهذه طريقة طباعة اسماء الملفات بشكل عادي
كود PHP:
$dir="php5"// اسم المجلد
$dir2=scandir($dir); // حفظ اسماء الملفات في مصفوفة 

for($i=0;$i<count($dir2);$i++)
   {
  echo 
'<br />'.$dir2[$i];

   } 
كما يمكن تجاهل . و ..

بهذا الكود

كود PHP:
$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

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






عبد الواحد البشيري غير متواجد حالياً   قديم 28-03-2008, 12:55 AM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Dec 2004-
#2 (permalink)  

درس جميل جدا


جزاك الله خير






__________________
سبحان الله وبحمده ،، سبحان الله العظيم
تذكر هذه الآيه قبل ان تشارك( مَا يَلْفِظُ مِن قَوْلٍ إِلَّا لَدَيْهِ رَقِيبٌ عَتِيدٌ)
طير شلوى غير متواجد حالياً   قديم 28-03-2008, 05:26 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: May 2007-
#3 (permalink)  

ما شاء الله عليك اخوي بالفعل درس غاية في الروعة وان شاء الله تفيدنا بالمستقبل ايضا .

الى الامام .






EbNCaNa غير متواجد حالياً   قديم 28-03-2008, 06:57 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Nov 2000-
#4 (permalink)  

شكراً لك اخي الكريم والله يكثر من امثالك

ولا يحرمك من الاجرررر






الطالب غير متواجد حالياً   قديم 28-03-2008, 02:18 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jan 2008-
#5 (permalink)  
Wink

السلام عليكم ,...
مشكور على شرحك ,
هناك ايضا , ...
كود PHP:
$dir=scandir(php5);  
for(
$i=2;$i<count($dir);$i++)
   {
    echo 
'<br />'.$dir[$i];

   } 
ليس عليك استخدام :
if( $dir2[$i] == "." or $dir2[$i] == ".." )
فقط اجعل قيمة $i تساوى 2 ليتجاهل اول نتيجتين وهما . و ..
او
[php]$dir="php5"; // اسم المجلد
$dir2=scandir($dir); // حفظ اسماء الملفات في مصفوفة
فقط ...
كود PHP:
$dir=scandir(php5); 
----------------------------------------------------------------------------
تحياتى






__________________
رئيس قسم برمجيات ومشروعات الويب
اكاديمية المنارة الدولية , الاكاديمية الالمانية المصرية
مصر - المنيا
dewan159@gmail.com

التعديل الأخير تم بواسطة : dewan159 بتاريخ 28-03-2008 الساعة 02:40 PM.
dewan159 غير متواجد حالياً   قديم 28-03-2008, 02:38 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Sep 2007-
#6 (permalink)  

شكراً لك علي الإفادة ...






__________________
ahmed sliman .. Web Programmer
ahmeds _ link @ hotmail . com
ahmeds_link غير متواجد حالياً   قديم 28-03-2008, 08:20 PM
رد مع اقتباس
عضو جديد
تاريخ التسجيل: Mar 2008-
#7 (permalink)  

جزاك الله خيرا أخي الفاضل و لكن هل تشتغل على النسخ تحت php5 ؟؟؟






__________________
لا إله إلا أنت سبحان إني كنت من الظالمين
bahi12 غير متواجد حالياً   قديم 28-03-2008, 08:47 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Apr 2006-
#8 (permalink)  

طير شلوى
EbNCaNa
الطالب
ahmeds_link

بارك الله فيكم

dewan159

بالنسبة ل
كود PHP:
$dir=scandir(php5);  
for(
$i=2;$i<count($dir);$i++)
   {
    echo 
'<br />'.$dir[$i];

   } 
هي طريقة رائعة وذكية لم افكر فيها من قبل شكرا لك

اما
كود:
[php]$dir="php5"; // اسم المجلد
$dir2=scandir($dir); // حفظ اسماء الملفات في مصفوفة
فقط ...
كود PHP:
$dir=scandir(php5);
المتغير الذي يحمل اسم المجلد يمكن تغيره بسهولة دون التعديل في دالة التكرار
كل واحد وطريقته

بارك الله فيك على الاضافة






عبد الواحد البشيري غير متواجد حالياً   قديم 28-03-2008, 11:23 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Apr 2006-
#9 (permalink)  

اقتباس:
المشاركة الأصلية كتبت بواسطة bahi12 مشاهدة المشاركة
جزاك الله خيرا أخي الفاضل و لكن هل تشتغل على النسخ تحت php5 ؟؟؟
نعم تشتغل على php 5






عبد الواحد البشيري غير متواجد حالياً   قديم 28-03-2008, 11:24 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Mar 2002-
#10 (permalink)  

هذة الدالة مجربها وفادتني كثير وأأكد انها ما تشتغل الا على الاصدار الخامس من php

وايضا وقعت في مشكلة وهي انك اذا رفعت مجلد كامل من جهازك الى موقعك

ستجد انه الملفات المخفية في المجلد ستظهر في النتائج مثل ملف thum.db اظن اسمه كذا
وفي ملف اخر مخفي طلع بالنتائج ..

وفي طرق ثانية للاصدارات الللي اقل من 5
راجع الردود في هذا الرابط
PHP: scandir - Manual






sms غير متواجد حالياً   قديم 29-03-2008, 12:20 AM
رد مع اقتباس
عضو جديد
تاريخ التسجيل: Mar 2008-
#11 (permalink)  

اعتقد انها تعمل على php5 فقط .!!







التعديل الأخير تم بواسطة : mon_man بتاريخ 29-03-2008 الساعة 12:30 AM.
mon_man غير متواجد حالياً   قديم 29-03-2008, 12:27 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jan 2008-
#12 (permalink)  
Wink

هناك حل اخر لمن يريد ان يجمع بين الاصدارات ( الخامسة وما قبلها ) اذا اردت ان يعمل تطبيقك على اى اصدارة :
اليك الكود :
كود PHP:
function getDir($dir) {
if (
version_compare(PHP_VERSION"5.0.0"">="))
return 
scandir($dir);
else{
    
$dh opendir($dir);
    while (
false !== ($filename readdir($dh))) {
        
$files[] = $filename;
    }
    
sort($files);
    return 
$files;}
}
$flist getDir($fd); 
ملخص العمل : اذا كانت الاصدارة اقل من 5 يستخدم الطريقة القديمة : readdir
اذا كانت الاصدارة 5 وما فوق يستخدم ال scandir وتكون النتيجة فى المتغير : $flist
ويمكنك بعد ذلك استخدام for مع المتغير الناتج لجلب المحتوى كما بالمثال بالاعلى ...
-----------------------------
تحياتى للجميع ,






__________________
رئيس قسم برمجيات ومشروعات الويب
اكاديمية المنارة الدولية , الاكاديمية الالمانية المصرية
مصر - المنيا
dewan159@gmail.com
dewan159 غير متواجد حالياً   قديم 29-03-2008, 12:32 AM
رد مع اقتباس
رد


 

أدوات الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع
لا تستطيع كتابة ردود
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
scandir dewan159 PHP 5 05-03-2008 08:14 PM
[دالة] دالة التاريخ باللغة العربية عبد الواحد البشيري PHP 8 06-06-2007 10:54 PM
[دالة] عرض الأقسام الرئيسية والفرعية الى مالا نهاية فِكرة PHP 9 31-05-2007 07:34 PM


الساعة الآن: 06:40 AM بتوقيت المملكة العربية السعودية