nazir/iofiles

处理文件(读取、写入、上传、移动、下载、调整图片大小、裁剪、添加水印等)的类

v1.0.2 2017-02-06 02:52 UTC

This package is not auto-updated.

Last update: 2024-09-29 02:02:14 UTC


README

处理一些与文件相关的常见操作,如保存、读取、移动、上传、强制下载、压缩、解压、调整图片大小、裁剪图片、水印等。并非PHP文件系统中的所有功能都包含在这个类中。

内容表 / 目录

  1. 新对象初始化
  2. 文件操作
  3. 上传文件
  4. ZIP操作
  5. 图片操作

安装 / 安装

在文件夹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_nametrue 时)

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 免费软件