abolfazl-z
یک شنبه 06 مرداد 1392, 00:49 صبح
سلام دوستان :لبخندساده:
تابع زیر را در نظر بگیرید :
function RemoveDirFull($dir)
{
$structure = get_list_file($dir,'*',true,true);
if (is_array($structure))
{
foreach($structure as $file)
{
if (is_dir($file))
RemoveDirFull($file);
elseif (is_file($file))
unlink($file);
}
}
rmdir($dir);
}
این تابع هم هست :
function get_list_file($path,$extension='*',$show_folder=fa lse,$show_link=false)
{
$file_list = array();
$not_file = array('.','..');
$handle = opendir($path);
if(!$handle) return false;
while(($file_dir = readdir($handle))!==false)
{
if(!in_array($file_dir,$not_file) )
if($show_folder || is_file($path.'/'.$file_dir))
{
if($extension=='*')
$file_list[] = $file_dir;
else
{
$ext = pathinfo($file_dir,PATHINFO_EXTENSION);
if($ext===$extension)
$file_list[] = $file_dir;
}
if(is_dir($path.'/'.$file_dir))
$file_list[count($file_list)-1] .= '/';
if($show_link)
$file_list[count($file_list)-1] = $path.$file_list[count($file_list)-1];
}
}
return $file_list;
}
خوب حالا شما بصورت زیر پوشه بسازید :
localhost/a
localhost/a/1
localhost/a/1/2
خوب حالا آدرس localhost/a را به تابع RemoveDirFull بدهید ! مشاهده می کنید که خطایی مبنی بر اینکه پوشه موردنظر خالی نیست را نشان می دهد ! که قاعدتا و بصورت طئوری نباید این خطا را بدهد چون پوشه ها خالی هستند !
در چند سایت خارجی هم چنین تابع هایی بود که همین عمل را انجام میدادند ولی همشون همون خطا را میداد.
مشکل چیست ؟ :متفکر:
تابع زیر را در نظر بگیرید :
function RemoveDirFull($dir)
{
$structure = get_list_file($dir,'*',true,true);
if (is_array($structure))
{
foreach($structure as $file)
{
if (is_dir($file))
RemoveDirFull($file);
elseif (is_file($file))
unlink($file);
}
}
rmdir($dir);
}
این تابع هم هست :
function get_list_file($path,$extension='*',$show_folder=fa lse,$show_link=false)
{
$file_list = array();
$not_file = array('.','..');
$handle = opendir($path);
if(!$handle) return false;
while(($file_dir = readdir($handle))!==false)
{
if(!in_array($file_dir,$not_file) )
if($show_folder || is_file($path.'/'.$file_dir))
{
if($extension=='*')
$file_list[] = $file_dir;
else
{
$ext = pathinfo($file_dir,PATHINFO_EXTENSION);
if($ext===$extension)
$file_list[] = $file_dir;
}
if(is_dir($path.'/'.$file_dir))
$file_list[count($file_list)-1] .= '/';
if($show_link)
$file_list[count($file_list)-1] = $path.$file_list[count($file_list)-1];
}
}
return $file_list;
}
خوب حالا شما بصورت زیر پوشه بسازید :
localhost/a
localhost/a/1
localhost/a/1/2
خوب حالا آدرس localhost/a را به تابع RemoveDirFull بدهید ! مشاهده می کنید که خطایی مبنی بر اینکه پوشه موردنظر خالی نیست را نشان می دهد ! که قاعدتا و بصورت طئوری نباید این خطا را بدهد چون پوشه ها خالی هستند !
در چند سایت خارجی هم چنین تابع هایی بود که همین عمل را انجام میدادند ولی همشون همون خطا را میداد.
مشکل چیست ؟ :متفکر: