PHP 中查找排除文件和特殊目录的子目录
在 Web 开发场景中,只检索指定目录中的子目录,不包含常见的杂乱内容,如常规文件、当前目录或父目录成为常见要求。本文深入探讨了在 PHP 中完成此任务的实用方法。
将 Glob() 与 GLOB_ONLYDIR 选项结合使用:
glob() 函数提供了一种便捷的搜索方法匹配给定模式的路径名。要获取所有子目录,我们可以将 glob() 与 GLOB_ONLYDIR 选项结合起来。此选项确保仅返回目录,消除文件、“.”和“..”。
$sub_directories = glob('./path/to/directory/*', GLOB_ONLYDIR); foreach ($sub_directories as $directory) { // Use each directory in a function }
将 Array_filter 与 is_dir 函数结合使用:
另一个方法涉及使用 array_filter() 过滤目录中所有项目的列表,包括“.”、“..”以及文件和目录。以下代码演示了这一点:
$items = scandir('./path/to/directory'); $directories = array_filter($items, 'is_dir'); foreach ($directories as $directory) { // Exclude "." and ".." using ternary operators if ($directory != '.' && $directory != '..') { // Use each directory in a function } }
请注意,提供的函数 array_filter(glob('*'), 'is_dir') 会过滤目录,无论其名称如何。但是,如果有任何名称中带有句点的子目录(例如“.config”),它们将被跳过。
以上是如何在PHP中查找不包括文件和特殊目录的子目录?的详细内容。更多信息请关注PHP中文网其他相关文章!