imran / file
用于处理文件的 PHP 类。
Requires
- php: >=8.0
- ext-fileinfo: *
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
README
File
类是一个 PHP 类,它提供了一个方便且易于使用的 API 来处理 PHP 中的文件和目录。使用此类,您可以执行各种与文件相关的操作,例如读取和写入文件、创建和删除目录、移动和复制文件等。
此类中的所有方法都是静态方法,这意味着您可以在不创建类实例的情况下使用它们。这使得从代码的任何位置使用类变得非常简单。
总的来说,File 类为 PHP 中的文件和目录处理提供了一个强大且用户友好的 API。无论是初学者还是经验丰富的 PHP 开发者,此类都是简化文件相关任务、提高代码可靠性和性能的有价值工具。
功能
exists
:检查文件或目录是否存在get
:获取文件的全部内容put
:向文件中写入内容append
:将内容追加到文件末尾delete
:删除文件isDirectory
:检查路径是否为目录makeDirectory
:创建目录deleteDirectory
:删除目录readDirectory
:读取目录内容changeMode
:更改文件或目录的权限模式prepend
:将内容添加到文件开头link
:创建指向目标文件的符号链接name
:获取不带扩展名的文件名baseName
:获取文件的基准名称dirName
:获取文件的目录名称type
:获取文件类型isReadable
:检查文件是否可读isWriteable
:检查文件是否可写isFile
:检查路径是否为文件files
:获取目录中的所有文件allFiles
:获取目录及其子目录中的所有文件moveDirectory
:将目录移动到新位置copyDirectory
:将目录复制到新位置cleanDirectories
:删除目录中的所有文件size
:获取文件大小(以字节为单位)lastModified
:获取文件的最后修改时间(UNIX 时间)copy
:将文件从一个位置复制到另一个位置move
:将文件从一个位置移动到另一个位置extension
:获取文件的扩展名mimeType
:获取文件的 MIME 类型
要求
- PHP 8.0 或更高版本
- PHP 文件信息扩展:
ext-fileinfo
安装
首先,在项目中包含 File.php 类。
require_once 'path/to/File.php';
或使用 composer(推荐方法)
composer require imran/file
方法
exists
exists()
方法检查文件或目录是否存在。
$exists = File::exists('path/to/file');
get
get()
方法获取文件的全部内容。
$contents = File::get('path/to/file');
put
put()
方法将内容写入文件。
File::put('path/to/file', 'contents');
append
append()
方法将内容追加到文件末尾。
File::append('path/to/file', 'contents');
delete
delete()
方法删除文件。
File::delete('path/to/file');
isDirectory
isDirectory()
方法检查路径是否为目录。
$isDirectory = File::isDirectory('path/to/directory');
makeDirectory
《makeDirectory()` 方法创建目录。
File::makeDirectory('path/to/directory');
deleteDirectory
《deleteDirectory()` 方法删除目录。
File::deleteDirectory('path/to/directory');
readDirectory
《readDirectory()` 方法读取目录内容。
$contents = File::readDirectory('path/to/directory');
changeMode
《changeMode()` 方法更改文件或目录的模式。
File::changeMode('path/to/file', 0777);
prepend
《prepend()` 方法向文件中添加内容。
File::prepend('path/to/file', 'contents');
move
《move()` 方法将文件移动到新位置。
File::move('path/to/old/file', 'path/to/new/file');
link
《link()` 方法创建到目标文件的符号链接。
File::link('path/to/target', 'path/to/link');
name
《name()` 方法获取不带扩展名的文件名。
$name = File::name('path/to/file.ext');
basename
《basename()` 方法获取文件的基名。
$basename = File::basename('path/to/file.ext');
dirname
《dirname()` 方法获取文件的目录名。
$dirname = File::dirname('path/to/file.ext');
type
《type()` 方法获取文件的类型。
$type = File::type('path/to/file');
isReadable
《isReadable()` 方法检查文件是否可读。
$isReadable = File::isReadable('path/to/file');
isWriteable
《isWriteable()` 方法检查文件是否可写。
$isWriteable = File::isWriteable('path/to/file');
isFile
《isFile()` 方法检查路径是否是文件。
$isFile = File::isFile('path/to/file');
files
《files()` 方法获取目录中的所有文件。
$files = File::files('path/to/directory');
allFiles
《allFiles()` 方法获取目录及其子目录中的所有文件。
$allFiles = File::allFiles('path/to/directory');
moveDirectory
《moveDirectory()` 方法将目录移动到新位置。
File::moveDirectory('path/to/old/directory', 'path/to/new/directory');
copyDirectory
《copyDirectory()` 方法将目录复制到新位置。
File::copyDirectory('path/to/old/directory', 'path/to/new/directory');
cleanDirectory
《cleanDirectory()` 方法删除目录中的所有文件。
File::cleanDirectory('path/to/directory');
size
《size()` 方法以字节数返回文件的大小。
$size = File::size('path/to/file');
lastModified
《lastModified()` 方法以 UNIX 时间戳返回文件的最后修改时间。
$lastModified = File::lastModified('path/to/file');
copy
《copy()` 方法将文件从一处复制到另一处。
$source = 'path/to/source'; $destination = 'path/to/destination'; File::copy($source,destination);
move
《move()` 方法将文件从一处移动到另一处。
$source = 'path/to/source'; $destination = 'path/to/destination'; File::move($source,destination);
extension
《extension()` 方法返回文件的扩展名。
$extension = File::extension('path/to/file');
mimeType
《mimeType()` 方法返回文件的 MIME 类型。
$mimeType = File::mimeType('path/to/file');
运行测试
要运行测试,请使用以下命令
.\vendor\bin\phpunit tests/FileTest.php
嗨,我是Imran Ali!👋
🚀 关于我
资深全栈开发者,专注于前端和后端开发。具有动态网络项目开发周期的所有阶段的经验。创新、富有创造力,是证明过的团队玩家,拥有前端开发技术学位,并在7年的时间里为各种公司开发和管理工作站、应用程序和程序。我寻求获得资深全栈开发者的职位,在那里我可以与宝贵的客户分享我的技能、专业知识和经验。
🛠 技能
PHP OOP、Laravel、Codeigniter、Javascript、Node、React、Vue、Git、HTML、Rest Api、Typescript、Angular、SCSS、Docker、CI/CD Jenkins、Bootstrap、响应式设计、ASP.NET Core
🔗 关注
许可证
贡献
欢迎贡献!
请参阅 contributing.md
了解如何开始。
请遵守本项目的 行为准则
。