note 102565 modified in function.unlink by danbrown

[email protected] Tue, 22 Feb 2011 09:53:24 -0800
Newsgroups php.notes
Message-ID <[email protected]>
If you have a problem with unwriteable files test this ;)
Its a bit longer but it works really fine for me :)

<?php
public function delete_folder($tmp_path){
  if(!is_writeable($tmp_path) && is_dir($tmp_path)){chmod($tmp_path,0777);}
	$handle = opendir($tmp_path);
  while($tmp=readdir($handle)){
    if($tmp!='..' && $tmp!='.' && $tmp!=''){
    	 if(is_writeable($tmp_path.DS.$tmp) && is_file($tmp_path.DS.$tmp)){
    	 		unlink($tmp_path.DS.$tmp);
    	 }elseif(!is_writeable($tmp_path.DS.$tmp) && is_file($tmp_path.DS.$tmp)){
    	 	chmod($tmp_path.DS.$tmp,0666);
    	 	unlink($tmp_path.DS.$tmp);
    	 }
    	 
         if(is_writeable($tmp_path.DS.$tmp) && is_dir($tmp_path.DS.$tmp)){
                delete_folder($tmp_path.DS.$tmp);
         }elseif(!is_writeable($tmp_path.DS.$tmp) && is_dir($tmp_path.DS.$tmp)){
                chmod($tmp_path.DS.$tmp,0777);
                delete_folder($tmp_path.DS.$tmp);
         }
    }
  }
  closedir($handle);
  rmdir($tmp_path);
  if(!is_dir($tmp_path)){return true;}
  else{return false;}
}
?>

--was--
If you have a problem with unwriteable files test this ;)
Its a bit longer but it works really fine for me :)

<?php
public function delete_folder($tmp_path){
  if(!is_writeable($tmp_path) && is_dir($tmp_path)){chmod($tmp_path,0777);}
	$handle = opendir($tmp_path);
  while($tmp=readdir($handle)){
    if($tmp!='..' && $tmp!='.' && $tmp!=''){
    	 if(is_writeable($tmp_path.DS.$tmp) && is_file($tmp_path.DS.$tmp)){
    	 		unlink($tmp_path.DS.$tmp);
    	 }elseif(!is_writeable($tmp_path.DS.$tmp) && is_file($tmp_path.DS.$tmp)){
    	 	chmod($tmp_path.DS.$tmp,0666);
    	 	unlink($tmp_path.DS.$tmp);
    	 }
    	 if(is_writeable($tmp_path.DS.$tmp) && is_dir($tmp_path.DS.$tmp)){
    	 		k8c_admin_area_write::k8c_delete_folder($tmp_path.DS.$tmp);
    	 }elseif(!is_writeable($tmp_path.DS.$tmp) && is_dir($tmp_path.DS.$tmp)){
    	 	chmod($tmp_path.DS.$tmp,0777);
    	 	delete_folder($tmp_path.DS.$tmp);
    	 }
    }
  }
  closedir($handle);
  rmdir($tmp_path);
  if(!is_dir($tmp_path)){return true;}
  else{return false;}
}
?>

http://php.net/manual/en/function.unlink.php