note 68957 added to function.filetype
| From: | development at lab-9 dot com | Date: | Thu, 17 Aug 2006 10:43:19 +0000 |
| Subject: | note 68957 added to function.filetype | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-116001@lists.php.net to get a copy of this message | ||
<?php
// hopefully self explaining :-)
// take care about WHAT you're going to delete ;-D
function copyRecursive($source, $dest, $overwrite = false)
{
if($handle = opendir($source))
{
while(false !== ($file = readdir($handle)))
{
if($file != '.' && $file != '..')
{
$path = $source . '/' . $file;
if(is_file($path))
{
if(!is_file($dest . '/' . $file) || $overwrite)
{
if(!@copy($path, $dest . '/' . $file))
{
trigger_error('File ('.$path.') could not be copied to
('.$dest.')', E_USER_ERROR);
}
}
}
else if(is_dir($path))
{
if(!is_dir($dest . '/' . $file))
{ mkdir($dest . '/' . $file); }
copyRecursive($path, $dest . '/' . $file, $overwrite);
}
}
}
closedir($handle);
}
}
function deleteRecursive2($dir, &$file_deleted, &$dir_deleted)
{
if(!$dh = @opendir($dir))
{
// if it's a file, remove it
if(is_file($dir))
{
if(is_writable($dir))
{
if(@unlink($dir))
$file_deleted++;
else
trigger_error("could not remove file ".$dir, E_USER_NOTICE);
}
else
{
trigger_error("could not remove file ".$dir.", please check permissions
(".fileperms2($dir).")", E_USER_NOTICE);
}
}
else if(is_dir($dir))
{
trigger_error("could not remove directory ".$dir, E_USER_NOTICE);
}
else
{
trigger_error("could not remove ".filetype($dir)." ".$dir, E_USER_NOTICE);
}
return;
}
while(($obj = readdir($dh)))
{
if($obj=='.' || $obj=='..')
{ continue; }
if(!@unlink($dir.'/'.$obj))
{
deleteRecursive2($dir.'/'.$obj, $file_deleted, $dir_deleted);
}
else
{
$file_deleted++;
}
}
if(@rmdir($dir))
$dir_deleted++;
else
trigger_error("could not remove directory ".$dir, E_USER_NOTICE);
}
function deleteRecursive($dir)
{
//echo "removing ".$dir;
deleteRecursive2($dir, $var1=0, $var2=0);
//echo ", removed ".$var1." files and ".$var2." dirs";
}
function moveRecursive($source, $target)
{
copyRecursive($source, $target);
deleteRecursive($source);
}
// originally found at php.net/fileperms
function fileperms2($file)
{
$perms = fileperms($file);
if (($perms & 0xC000) == 0xC000) {
// Socket
$info = 's';
} elseif (($perms & 0xA000) == 0xA000) {
// Symbolic Link
$info = 'l';
} elseif (($perms & 0x8000) == 0x8000) {
// Regular
$info = '-';
} elseif (($perms & 0x6000) == 0x6000) {
// Block special
$info = 'b';
} elseif (($perms & 0x4000) == 0x4000) {
// Directory
$info = 'd';
} elseif (($perms & 0x2000) == 0x2000) {
// Character special
$info = 'c';
} elseif (($perms & 0x1000) == 0x1000) {
// FIFO pipe
$info = 'p';
} else {
// Unknown
$info = 'u';
}
// Owner
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
(($perms & 0x0800) ? 's' : 'x' ) :
(($perms & 0x0800) ? 'S' : '-'));
// Group
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
(($perms & 0x0400) ? 's' : 'x' ) :
(($perms & 0x0400) ? 'S' : '-'));
// World
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
(($perms & 0x0200) ? 't' : 'x' ) :
(($perms & 0x0200) ? 'T' : '-'));
return $info;
}
?>
----
Server IP: 195.248.191.91
Probable Submitter: 81.223.54.114
----
X-Spam-Status: No, hits=3.1 required=5.0 tests=DATE_MISSING,FROM_NO_LOWER
autolearn=no version=2.64
----
Manual Page -- http://www.php.net/manual/en/function.filetype.php
Edit -- https://master.php.net/note/edit/68957
Del: integrated -- https://master.php.net/note/delete/68957/integrated
Del: useless -- https://master.php.net/note/delete/68957/useless
Del: bad code -- https://master.php.net/note/delete/68957/bad+code
Del: spam -- https://master.php.net/note/delete/68957/spam
Del: non-english -- https://master.php.net/note/delete/68957/non-english
Del: in docs -- https://master.php.net/note/delete/68957/in+docs
Del: other reasons-- https://master.php.net/note/delete/68957
Reject -- https://master.php.net/note/reject/68957
Search -- https://master.php.net/manage/user-notes.php