PHP vendor 目录无用前端资源文件删除

主要基于 File and Directory Entries API,在浏览器内实现对本地文件的操作。

相关文档的 地址 https://developer.mozilla.org/en-US/docs/Web/API/File_and_Directory_Entries_API

上面 文中提出了可以利用 拖拽 API 获取,之前 文章 宝塔文件管理 批量拖拽上传 有 用到 FileAPI 获取到的就是 FileSystemDirectoryEntry|FileSystemFileEntry

最近发现里一个 可以直接获取 FileSystemDirectoryEntry 的 API, showDirectoryPicker 直接调用 文件夹选择器 返回 FileSystemDirectoryEntry

通过 FileSystemDirectoryEntry 可以 实现 子文件/目录的操作,所以就有本文的

DMEO 小工具 PHP vendor 目录无用前端资源文件删除 之前这事情,一直是用 PHP 的做的

但是在发现本接口的时候 发现用,改为用 JS 毕竟,不是啥电脑 都有的 php.exe 的。但是 浏览器却都有 你没有 Chrome 男号还没有 Microsoft Edge 表情🤣

最后附上 PHP 代码

<?php
/**
 * 删除 vendor 无用文件 列表自己可编辑 一行一个, 文件放在 vendor 同级目录
**/


$files = '

bower-asset/ace-builds/src
bower-asset/ace-builds/src-min
bower-asset/ace-builds/src-noconflict
bower-asset/punycode/tests
almasaeed2010/adminlte/plugins
npm-asset/font-awesome/js-packages
fortawesome/font-awesome/js-packages

';

$files = preg_split('/[\r\n]+/', $files, -1, PREG_SPLIT_NO_EMPTY);


foreach ($files as $file) {
    echo __DIR__ . "/vendor/{$file}" . PHP_EOL;
    deleteFile( __DIR__ . "/vendor/{$file}" );
}



function deleteFile($file) {
    if (empty($file))
        return false;
    if (@is_file($file))
        return @unlink($file);
    $ret = true;
    if ($handle = @opendir($file)) {
        while ($filename = @readdir($handle)) {
            if ($filename == '.' || $filename == '..')
                continue;
            if (!deleteFile($file . '/' . $filename))
                $ret = false;
        }
    } else {
        $ret = false;
    }
    @closedir($handle);
    if (file_exists($file) && !rmdir($file)) {
        $ret = false;
    }
    return $ret;
}

Post Author: admin