dcarbone/directory-iterator-plus

PHP \DirectoryIterator 类的一个简单扩展

0.3.0 2018-02-02 03:49 UTC

This package is auto-updated.

Last update: 2024-09-17 09:29:21 UTC


README

PHP \DirectoryIterator 类的一个简单扩展

构建状态: 构建状态

在您的Composer应用程序中安装

{
    "require": {
      "dcarbone/directory-iterator-plus" : "@stable"
    }
}

概念

我需要一个能够相对快速地创建一个允许导航成千上万文件目录的Web界面的需求。

我不想使用 glob() 遍历它们,并且我希望有一个简单的方式来分页和搜索它们。

这个类满足了这一需求。

用法

这个类是PHP基础类 DirectoryIterator 的扩展,因此具有所有相同的方法,并且在很大程度上其功能没有改变。

新方法

我提供了几个自定义方法,其中大部分围绕获取文件子集或在目录中确定文件的存在。

文件和目录计数

您可以通过调用 getFileCount()getDirectoryCount() 方法在实例化后检索这些值。

我过去做一些 exec 的无聊事,但现在我懒惰,只使用 glob

搜索

您有几种选项可供选择

  • 通过精确的文件/目录名称确定存在性
    • containsFile($file)
    • containsDirectory($directory)
  • 通过字符串搜索项确定存在性
    • containsFileLike($string[, $caseInsensitive = false])
    • containsDirectoryLike($string[, $caseInsensitive = false])
  • 通过搜索项获取文件/目录计数
    • getFileCountLike($string)
    • getDirectoryCountLike($string)

每个 "Like" 方法都使用PHP的 stripos 函数来确定传递的值是否完全包含在给定文件/目录的文件名中。

文件分页

目前有两种分页方法可用

  • paginateFileNames([$offset 0[, $limit = 25[, $search = null]]])
  • paginateFiles([$offset 0[, $limit = 25[, $search = null]]])

这些方法旨在类似于用于数据库的任何其他分页代码。

再次,$search 项使用PHP stripos 方法来确定匹配项。

这两个方法的主要区别在于返回数组的内容。

paginateFileNames()

此方法将返回一个与输入标准匹配的文件名数组

paginateFiles()

此方法将返回一个代表单个文件的 \DCarbone\DirectoryIteratorPlus 对象数组

评论和建议

如果您觉得这个库很有用,并且有改进它的想法,请告诉我!