📄 func_file.php
字号:
<?php
if (!defined('ROOT'))
exit('Access Denied');
function read_file($file)
{
if (!file_exists($file))
{
return false;
}
if (function_exists('file_get_contents'))
{
return file_get_contents($file);
}
if (!$fp = @fopen($file, FOPEN_READ))
{
return false;
}
flock($fp, LOCK_SH);
$data = '';
if (filesize($file) > 0)
{
$data = &fread($fp, filesize($file));
}
flock($fp, LOCK_UN);
fclose($fp);
return $data;
}
function write_file($root, $data, $mode = 'wb')
{
if (!$fp = @fopen($root, $mode))
{
return false;
}
flock($fp, LOCK_EX);
fwrite($fp, $data);
flock($fp, LOCK_UN);
fclose($fp);
return true;
}
function delete_files($root, $del_dir = false, $level = 0)
{
$root = preg_replace("|^(.+?)/*$|", "\\1", $root);
if (!$current_dir = @opendir($root))
return;
while (false !== ($filename = @readdir($current_dir)))
{
if ($filename != "." and $filename != "..")
{
if (is_dir($root . '/' . $filename))
{
delete_files($root . '/' . $filename, $del_dir, $level + 1);
} else
{
unlink($root . '/' . $filename);
}
}
}
@closedir($current_dir);
if ($del_dir == true and $level > 0)
{
@rmdir($root);
}
}
function get_filenames($source_dir, $include_root = false, $_recursion = false)
{
static $_filedata = array();
if ($fp = @opendir($source_dir))
{
if ($_recursion === false)
{
$_filedata = array();
$source_dir = rtrim(realroot($source_dir), DIRECTORY_SEPARATOR) .
DIRECTORY_SEPARATOR;
}
while (false !== ($file = readdir($fp)))
{
if (@is_dir($source_dir . $file) && strncmp($file, '.', 1) !== 0)
{
get_filenames($source_dir . $file . DIRECTORY_SEPARATOR, $include_root, true);
} elseif (strncmp($file, '.', 1) !== 0)
{
$_filedata[] = ($include_root == true) ? $source_dir . $file : $file;
}
}
return $_filedata;
} else
{
return false;
}
}
function get_dir_file_info($source_dir, $include_root = false, $_recursion = false)
{
$_filedata = array();
$relative_root = $source_dir;
if ($fp = @opendir($source_dir))
{
if ($_recursion === false)
{
$_filedata = array();
$source_dir = rtrim(realROOT($source_dir), DIRECTORY_SEPARATOR) .
DIRECTORY_SEPARATOR;
}
while (false !== ($file = readdir($fp)))
{
if (@is_dir($source_dir . $file) && strncmp($file, '.', 1) !== 0)
{
get_dir_file_info($source_dir . $file . DIRECTORY_SEPARATOR, $include_root, true);
} elseif (strncmp($file, '.', 1) !== 0)
{
$_filedata[$file] = get_file_info($source_dir . $file);
$_filedata[$file]['relative_root'] = $relative_root;
}
}
return $_filedata;
} else
{
return false;
}
}
function get_file_info($file, $returned_values = array('name', 'server_root',
'size', 'date'))
{
if (!file_exists($file))
{
return false;
}
if (is_string($returned_values))
{
$returned_values = explode(',', $returned_values);
}
foreach ($returned_values as $key)
{
switch ($key)
{
case 'name':
$fileinfo['name'] = substr(strrchr($file, '/'), 1);
break;
case 'server_root':
$fileinfo['server_root'] = $file;
break;
case 'size':
$fileinfo['size'] = filesize($file);
break;
case 'date':
$fileinfo['date'] = filectime($file);
break;
case 'edit':
$fileinfo['edit'] = filemtime($file);
break;
case 'readable':
$fileinfo['readable'] = is_readable($file);
break;
case 'writable':
$fileinfo['writable'] = is_writable($file);
break;
case 'executable':
$fileinfo['executable'] = is_executable($file);
break;
case 'fileperms':
$fileinfo['fileperms'] = fileperms($file);
break;
}
}
return $fileinfo;
}
function get_mime_by_extension($file)
{
$extension = substr(strrchr($file, '.'), 1);
global $mimes;
if (!is_array($mimes))
{
if (!require_once ('config/mimes.php'))
{
return false;
}
}
if (array_key_exists($extension, $mimes))
{
if (is_array($mimes[$extension]))
{
return current($mimes[$extension]);
} else
{
return $mimes[$extension];
}
} else
{
return false;
}
}
function symbolic_permissions($perms)
{
if (($perms & 0xC000) == 0xC000)
{
$symbolic = 's';
} elseif (($perms & 0xA000) == 0xA000)
{
$symbolic = 'l';
} elseif (($perms & 0x8000) == 0x8000)
{
$symbolic = '-';
} elseif (($perms & 0x6000) == 0x6000)
{
$symbolic = 'b';
} elseif (($perms & 0x4000) == 0x4000)
{
$symbolic = 'd';
} elseif (($perms & 0x2000) == 0x2000)
{
$symbolic = 'c';
} elseif (($perms & 0x1000) == 0x1000)
{
$symbolic = 'p';
} else
{
$symbolic = 'u';
}
$symbolic .= (($perms & 0x0100) ? 'r' : '-');
$symbolic .= (($perms & 0x0080) ? 'w' : '-');
$symbolic .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x') : (($perms &
0x0800) ? 'S' : '-'));
$symbolic .= (($perms & 0x0020) ? 'r' : '-');
$symbolic .= (($perms & 0x0010) ? 'w' : '-');
$symbolic .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x') : (($perms &
0x0400) ? 'S' : '-'));
$symbolic .= (($perms & 0x0004) ? 'r' : '-');
$symbolic .= (($perms & 0x0002) ? 'w' : '-');
$symbolic .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x') : (($perms &
0x0200) ? 'T' : '-'));
return $symbolic;
}
function octal_permissions($perms)
{
return substr(sprintf('%o', $perms), -3);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -