imran/file

用于处理文件的 PHP 类。

1.0.0 2023-02-22 13:11 UTC

This package is auto-updated.

Last update: 2024-09-22 16:39:57 UTC


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

🔗 关注

linkedin twitter

许可证

MIT License GPLv3 License AGPL License

贡献

欢迎贡献!

请参阅 contributing.md 了解如何开始。

请遵守本项目的 行为准则