⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 func_file.php

📁 采用模块化设计,自由组合文章,软件,论坛等模块,安装方便快捷 模板支持Dreamweaver可视化编辑,创建风格更为容易,专业
💻 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 + -