在上一篇文章中《PHP删除当前目录下面的所有文件和文件目录》,一些大部分文件都可删除!
但是遇到一个问题,那就是.开头的文章无法解决!
原因解析!
glob
函数是一个通用的文件系统函数,它返回与指定模式匹配的文件名或目录名。当你在 PHP 中使用 glob
函数时,你可能会注意到它无法查找以点(.)
开头的文件(如.DS_Store
)。
这是因为以点开头的文件在类 UNIX
系统中被视为隐藏文件,不会被常规的文件系统操作显示出来。因此,当你使用 glob
函数搜索文件系统时,系统会默认隐藏以点开头的文件,并且不会返回这些文件名。
如果你想查找以点开头的文件,你可以使用以下方法:
- 显示搜索:在 glob 函数的模式中包含点开头的文件名,例如:”.” 或 “.DS_Store”。这样会返回以点开头的文件,但也会返回所有其他文件。
- 使用一个迭代器:可以使用 PHP SPL(标准 PHP 库)中的 DirectoryIterator 类或 RecursiveDirectoryIterator 类来迭代遍历目录,然后通过调用 getFilename() 方法来获取所有文件名,包括以点开头的文件名。
例如:
$dir = new RecursiveDirectoryIterator(__DIR__);
$iterator = new RecursiveIteratorIterator($dir);
$files = array();
foreach ($iterator as $file) {
if (!$file->isDir() && $file->getFilename()[0] === '.') {
$files[] = $file->getPathname();
}
}
print_r($files);
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容