微客资源网-专注于分享全网精质的活动线报、手机软件、网站源码等,致力成为小白学习的基地
爱Q资源网
广告位出租

分享一个很实用的php文件复制,下载、解压、删除可批量综合操作类

发布:微客资源网2021-3-13 14:47分类: web技术 标签: php php文件类 php文件zip解压 php批量复制文件 php批量删除文件

全部都是静态方法,不需要实例化即可调用

代码如下:

PHP
<?php

!defined('DS') && define('DS', DIRECTORY_SEPARATOR);

/**
 * Name     文件下载、解压、复制、移动操作综合类
 * Author   沉梦执于梦
 */
class Flie
{

    public function __construct()
    {
        return true;
    }

    /**
     * 远程文件下载
     * @param  string $filePath   远程文件直链
     * @param  string $targetPath 本地目标路径
     * @return string
     */
    public static function copyWebFile($filePath = '', $targetPath = '')
    {
        //下载远程文件
        if (function_exists("set_time_limit")) {
            @set_time_limit(0);
        }

        if (function_exists("ignore_user_abort")) {
            @ignore_user_abort(true);
        }
        $time       = time();
        $local_path = dirname(__FILE__);
        $local      = $targetPath;

        if (!file_exists($local_path)) {
            mkdir($local_path, 0755);
            @chmod($local_path, 0755);
        }

        ob_start(); //打开输出
        // 分段读取文件
        $header = get_headers($filePath, 1);
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename="' . $local . '"');
        header('Content-Length: ' . $header['Content-Length']);
        flush();
        readfile($filePath);
        $filedata = ob_get_contents(); //得到浏览器输出
        ob_clean(); //清空输出
        header('content-Type:text/html;charset=utf-8');

        if (file_put_contents($local, $filedata)) {
            mkdir($local_path, 0755);
            @chmod($local_path, 0755);
            return $local;
        }
        return false;
    }

    /**
     * 解压ZIP文件
     * @param  string $src  ZIP压缩文件
     * @param  string $dest 目标地址目录
     * @return bool
     */
    public static function zipExtract($src, $dest)
    {
        $zip = new ZipArchive();
        if ($zip->open($src) === true) {
            $zip->extractTo($dest);
            $zip->close();
            return true;
        }
        return false;
    }

    /**
     * 移动文件
     * @param  string $dir    文件来源地址
     * @param  string $newDir 文件目标地址
     * @return bool
     */
    public static function moveDir($dir = '', $newDir = '')
    {
        if (!is_dir($dir)) {
            return false;
        }

        if (!is_dir($newDir)) {
            @mkdir($newDir);
        }

        $dh = opendir($dir);
        @chmod($dir, 0755);
        @chmod($newDir, 0755);
        while ($file = readdir($dh)) {
            if ($file != "." && $file != "..") {
                if (is_dir($dir . DS . $file)) {
                    self::moveDir($dir . DS . $file, $newDir . DS . $file);
                } else {
                    $fullpath = $newDir . DS . $file;
                    $oldpath  = $dir . DS . $file;
                    @chmod($fullpath, 0755);
                    @chmod($oldpath, 0755);
                    copy($oldpath, $fullpath);
                    unlink($oldpath);
                }
            }
        }

        closedir($dh);
        if (rmdir($dir)) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * 批量删除文件
     * @param string $dir 需要批量删除文件的目录
     */
    public static function delFiles($dir)
    {
        $dir   = str_replace('/', DS, $dir);
        $files = scandir($dir);
        if (count($files) > 0) {
            foreach ($files as $filename) {
                if ($filename === "." || $filename === "..") {
                    continue;
                }
                if (is_dir($dir . $filename)) {
                    self::delFiles($dir . $filename . DS);
                } else {
                    @unlink($dir . $filename);
                    @rmdir($dir);
                }
            }
            return true;

        }
        return false;
    }

    /**
     * 验证文件目录 如果不存在就自动创建
     * @param  string $dir    目录
     * @return bool
     */
    public static function checkDir($dir = '')
    {
        if (empty($dir)) {
            return false;
        }
        $dir = str_replace('/', DS, $dir);
        if (!is_dir($dir)) {
            return @mkdir($dir);
        }
        return true;
    }
}




温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!

已有 0/118 人参与

发表评论:

欢迎使用手机扫描访问本站,还可以关注微信哦~