dcarbone / directory-iterator-plus
PHP \DirectoryIterator 类的一个简单扩展
0.3.0
2018-02-02 03:49 UTC
Requires
- php: >=5.4
Requires (Dev)
- phpunit/phpunit: @stable
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
对象数组
评论和建议
如果您觉得这个库很有用,并且有改进它的想法,请告诉我!