الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف اقوم باستعراض اسماء المجلدات

بدأه relod في 8 سبتمبر 2012 · 2 رد · 466 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

انا اقوم ببرمجة سكربت ولكن واجهتني مشكلة

وهي الان انا استعرض اسماء الملفات في مجاد معين كتالي:

$dir="php5";
$dir2=scandir($dir); 
echo'<pre>'; 
print_r($dir2); 
echo'</pre>';

لكن الان واجهتني مشكلة لنفرض انه السكربت به عدة مجلدات مجلدات فرعية ومجلدات رئيسية كيف اقوم باستعراض اسماء هذه المجلدات ومساراتها

انا حاولت كثيرا والفكرة موجودة عندي لكني لا اعرف الطريقة المثلة لتنفيذها

والفكرة هي ان يبدء من المجلد الرئيسي ومن ثم يقوم بمسك الفولدرات واحد واحد ويشوف هل جواهم فولدرات اخرى او لا

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

#2

opendir() و readdir() هي عادة ما يستخدم بصورة recursive للحصول على tree list من محتويات مسار معين.

فكرتك في المرور على كل مجلد في القائمة والنظر إلى محتواه، ... صحيحة

طبعاً الصعوبة تكمن قليلاً في تحديد الصيغة المناسبة للعودية recursion

هذا مثال، قم بتعديل آخر سطر فيه وضع المسار الذي تريده:

 <?php
 function BuildFileList($dir_id, $dir_class = "filetree", $path="", $extension="", $file_on_click_event=""){
        if(empty($path))$path    =  $_SERVER['DOCUMENT_ROOT'];
        function _BuildFileList($path, $extension, $file_on_click_event=""){
/*******************************************************************************
*
*        Sets events and a bit of initialision
*
******************************************************************************/
                $list        = "";
                $dir_handle = @opendir($path) or die("Unable to open $path"); 
                while (false !== ($file = readdir($dir_handle))) { 
/******************************************************************************* 
* 
*        It's a directory! Mainly adds the folder header and does a recursion 
* 
*        **** WILL NOT INCLUDE SVN directories **** 
* 
******************************************************************************/ 
                        if(is_dir("$path/$file")){ 
                                if(".."!=$file&&"."!=$file&&".svn"!=$file){ 
                                        $list        .=        "<li class='closed'>". 
                                                                "<span class='folder'>$file</span>". 
                                                                _BuildFileList("$path/$file", $extension, $file_on_click_event). 
                                                                "</li>"; 
                                } 
                        }else{ 
/******************************************************************************* 
*
*        It's a file. Appends
*
******************************************************************************/ 
                                if(empty($extension)){ 
                                        $list    .= "<li><span class='file' onclick='$file_on_click_event' style='cursor:pointer;'>$file</span></li>\n";
                                }else{
                                        $path_parts = pathinfo("$path/$file");
                                        if(isset($path_parts["extension"])){
                                                if($extension==$path_parts["extension"]){
                                                        $list        .= "<li><span class='file' onclick='$file_on_click_event' style='cursor:pointer;'>$file</span></li>\n"; 
                                                }
                                        } 
                                }
                        } 
                }
                closedir($dir_handle);
                return "<ul>$list</ul>";
        } 
        $content    = _BuildFileList($path, $extension, $file_on_click_event); 
        return "<ul id='$dir_id' class='$dir_class'><li>$content</li></ul>"; 
}
 echo BuildFileList(1,"filetree", "File:///D:"); 
 ?>

ان استخدمته مع jQuery TreeView plugin ستحصل على شئ مثل هذا: http://jquery.bassistance.de/treeview/demo/

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#3

السلام عليكم

هذا تعديل بسيط على الكود الذى قمت بكتابته يتيح لك تصفح المجلدات ومحتوياتها , ويمكنك أيضاً إستخدام مكتبة jQuery لمزيد من التفاعليه .

<?php
$path='php5';
if(!isset($_GET['dir']))
{
	echo "<a href='scandir.php?dir=$path'>press here</a><br>";
	exit(0);
}

if (is_dir($_GET['dir'])){
	$dir=$_GET['dir'];
	$dir_arr=scandir($dir);
	$count=2;
	if($dir_arr != false)
	{
		while($count != count($dir_arr)){
			if(is_dir($dir."/".$dir_arr[$count]))
				echo "<a href='scandir.php?dir=$dir%2F$dir_arr[$count]'>$dir_arr[$count]</a><br>";
			else
				echo $dir_arr[$count]."<br>";
			$count++;
		}
	}
}
?>

رابط تنزيل الملف

scandir.zip

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…