nazir / iofiles
处理文件(读取、写入、上传、移动、下载、调整图片大小、裁剪、添加水印等)的类
Requires
- php: >=5.3.2
Requires (Dev)
- phpunit/phpunit: 3.7.14
This package is not auto-updated.
Last update: 2024-09-29 02:02:14 UTC
README
处理一些与文件相关的常见操作,如保存、读取、移动、上传、强制下载、压缩、解压、调整图片大小、裁剪图片、水印等。并非PHP文件系统中的所有功能都包含在这个类中。
内容表 / 目录
安装 / 安装
在文件夹scr中下载文件或在composer中用以下命令使用
$ composer require nazir/iofiles
使用 / 用法
- 新对象初始化
use \IOFiles\IOFiles; $iofiles = new IOFiles; \\ jika tanpa use maka $iofiles = new \IOFiles\IOFiles;
之后,对象将使用以下一些公共方法
- 文件操作
a. 复制文件 (copy)
$iofiles->copy($file, $destination);
b. 将文件移动到新位置 (move)
$iofiles->move($oldfile, $newfile);
c. 更改文件名 (rename)
$iofiles->rename($oldfile, $newfile);
d. 删除文件 (delete)
$iofiles->delete($file);
e. 强制浏览器下载文件 (force download)
$iofiles->download($file);
这个函数必须在有任何输出之前调用,因为它将设置一些头部。
f. Gzip文件
$iofiles->gz_file($file);
gzip后的文件将与源文件相邻放置,文件名为filesumber.gz
g. 查看文件属性 (properties)
$iofiles->get_attrib($file, [$flags]);
$flag
可以是以下属性之一或包含属性的数组(如果需要返回所有属性)
'size'
- 文件大小(以字节为单位)'name'
- 文件名'type'
- 文件类型'path'
- 文件路径'perms'
- 文件访问权限'read'
- 文件是否可读(true/false),最好使用PHP的is_readable()函数'write'
- 文件是否可写(true/false),最好使用PHP的is_writeable()函数'accessed'
- 文件最后访问时间,格式为(Y-m-d H:i:s)
'modified'
- 文件最后修改时间,格式为(Y-m-d H:i:s)
有效的示例
$iofiles->get_attrib('index.php', 'size'); $iofiles->get_attrib('index.php', array('size', 'perms');
h. 查看文件扩展名 (extension)
$iofiles->get_type($file)
获取文件的UPPERCASE扩展名。例如 index.php
-> 'PHP'
i. 搜索文件 (find)
$iofiles->find($keyword, [$directory]);
$directory
是要搜索文件的文件夹,默认为 当前目录 (.). 如果存在匹配的文件,则返回文件名数组。
j. 搜索文件 (search)
$iofiles->search($keyword, [$directory]); // sama dengan $iofiles->find(..) :D
k. 读取文件内容 (read)
$iofiles->read($file, [[[$returnType], [$length]], [$readType]]);
$returnType
: 有效值为 1(输出为 string),2(输出为包含分隔符的 array)。$length
: 读取文件的最大字节数,默认与文件大小相同$readType
: 读取模式,有效值为 1(文本模式),2(二进制模式)
l. 将数据写入文件 (write)
$iofiles->write($file, [[$content], [$mode]]);
$mode
可以为 'ab'
(追加,默认),'wb'
(覆盖),等等。 警告:如果输入无效的模式,则没有验证。请参阅PHP文档了解有效模式。
- 上传文件
a. 配置 (configuration)
$iofiles->upload_config($config);
必须在开始上传过程之前调用。 $config
包含以下有效值的数组
'max_size'
- 文件最大大小,也受php.ini
限制'max_filename'
- 文件名最大长度'allowed_types'
- 允许的扩展名,例如:'jpg|jpeg|png'
'upload_path'
- 上传文件放置的位置'overwrite'
- (true/false)'encrypt_name'
- (true/false) 是否新文件名被替换为随机名
有效的示例
$iofiles->upload_config( array( 'allowed_types' => 'docx|pdf', 'overwrite' => true, 'encrypt_name' => true ) ); $iofiles->upload('userfile');
b. 上传过程 (上传)
$iofiles->upload([$field]);
$field
是用于上传输入的名称(默认为 'userfile'
)。请确保在调用此函数之前调用 $iofiles->upload_config()
。
c. 获取上传参数 (获取参数)
$iofiles->upload_get_param($paramName);
使用此函数可以调用以下值获取上传时的某些信息
'file_temp'
- 上传时临时文件名'file_size'
- 上传文件的大小'file_type'
- 文件类型'orig_name'
- 原始文件名'file_ext'
- 文件扩展名'file_name'
- 上传后的文件名(尤其是当encrypt_name
为true
时)
d. 获取上传错误 (显示错误)
$iofiles->upload_show_error();
- ZIP 操作
a. 使用 ZIP 压缩文件 (zip 压缩)
$iofiles->zip_compress($file, [$zipName]);
$file
可以包含 string(单个文件)或 array(多个文件)。ZIP 文件将放置在源文件旁边。
b. 解压 ZIP (zip 解压)
$iofiles->zip_extract($zipfile, $destdir);
- 图像/图片操作
a. 配置 (configuration)
$iofiles->image_config($config);
必须在开始图像操作之前调用。$config
包含以下有效值的数组
'source_image'
- 要操作的图像'new_image'
- 操作后新文件名'width'
- 新图像的宽度(用于 调整大小)'height'
- 新图像的高度(用于 调整大小)'quality'
- 图像质量(0-100)'maintain_ratio'
- 保持图像比例(true/false)'rotation_angle'
- 旋转角度 (*仅用于旋转图像)'wm_type'
- 水印类型,('text'
,'overlay'
)'wm_use_drop_shadow'
- 水印带有阴影(true/false)默认为 false'wm_use_truetype'
- 水印带有 truetype 字体(true/false)默认为 false'wm_text'
- 要用作水印的文本'wm_overlay_path'
- 用作水印的图像路径'wm_font_path'
- 如果使用 truetype,则字体路径'wm_font_size'
- 水印字体大小'wm_vrt_alignment'
- 水印垂直位置,('T'
为顶部,'M'
为中间,'B'
为底部)'wm_hor_alignment'
- 水印水平位置,('L'
为左侧,'C'
为中间,'R'
为右侧)'wm_font_color'
- 水印字体颜色,用十六进制码表示,例如'#ffffff'
'wm_shadow_color'
- 水印阴影颜色,用十六进制码表示'wm_shadow_distance'
- 阴影与文本的距离'wm_opacity'
- 水印不透明度(对于图像)的值为 1-100,有效示例
$iofiles->image_config( array( 'source_image' => 'yourimage.png', 'maintain_ratio' => true, 'wm_type' => 'text', 'wm_text' => 'Copyright 2017' ) );
b. 剪切图像 (剪切)
$iofiles->image_crop(); // pastikan image_config sudah dipanggil
c. 调整图像大小 (调整大小)
$iofiles->image_resize();
d. 旋转图像 (旋转)
$iofiles->image_rotate();
e. 应用水印 (图像水印)
$iofiles->image_watermark();
f. 镜像效果 (图像镜像)
$iofiles->image_mirror();
g. 在过程中获取错误 (显示错误)
$iofiles->image_show_error();
h. 清理过程 (清理)
$iofiles->image_clear();
为了确保一切干净,请在此过程完成后或再次进行图像操作时调用此函数。
版权?/ 致谢
一些函数来自 CodeIgniter 的代码
许可/许可证
MIT 免费软件