cs278/mktemp

使用PHP安全地创建临时文件和目录。

v1.3.0 2023-09-21 14:39 UTC

This package is auto-updated.

Last update: 2024-08-27 11:05:58 UTC


README

在PHP中创建临时文件和目录,确保安全。

遗憾的是,PHP在安全创建临时文件和目录方面存在缺陷。这个库旨在解决这些问题。

用法

函数

  • Cs278\Mktemp\temporaryFile(string|null $template, string|null $dir)

    创建一个具有提供模板名称的临时文件。

    模板应包含至少3个连续的X字符的字符串,这些字符将被随机组件替换。字符串中的最后一个有效序列将被使用。如果此参数为null,则使用默认的tmp.XXXXXX模板。

    目录应是一个用户可以写入的存在的路径,如果不提供此参数,则使用默认的临时目录。

    如果无法创建文件,将抛出Cs278\Mktemp\Exception\CreateFailedException

    use function Cs278\Mktemp\temporaryFile;
    
    var_dump(temporaryFile());
    // /tmp/tmp.P9aLnd
    var_dump(temporaryFile('output.XXXX.pdf'));
    // /tmp/output.oI7b.pdf
    var_dump(temporaryFile(null, '/var/tmp'));
    // /var/tmp/tmp.8uJx
    var_dump(temporaryFile('test.XXX.html', '/var/tmp'));
    // /var/tmp/test.9h2.html
  • Cs278\Mktemp\temporaryDir(string|null $template, string|null $dir)

    创建一个具有提供模板名称的临时目录。

    模板应包含至少3个连续的X字符的字符串,这些字符将被随机组件替换。字符串中的最后一个有效序列将被使用。如果此参数为null,则使用默认的tmp.XXXXXX模板。

    目录应是一个用户可以写入的存在的路径,如果不提供此参数,则使用默认的临时目录。

    如果无法创建目录,将抛出Cs278\Mktemp\Exception\CreateFailedException

    use function Cs278\Mktemp\temporaryDir;
    
    var_dump(temporaryDir());
    // /tmp/tmp.P9aLnd
    var_dump(temporaryDir('output.XXXX.pdf'));
    // /tmp/output.oI7b.pdf
    var_dump(temporaryDir(null, '/var/tmp'));
    // /var/tmp/tmp.8uJx
    var_dump(temporaryDir('test.XXX.html', '/var/tmp'));
    // /var/tmp/test.9h2.html

Cs278\Mktemp\TempFile

  • TempFile::__construct(string|null $template, string|null $dir)

    创建一个管理文件系统实体生命周期的临时文件对象。

    参数与temporaryFile()中记录的参数相同。

  • TempFile::getPath()

    返回临时文件的路径,主要用于与PHP外部交互。

  • TempFile::open(string $mode)

    根据提供的模式打开文件进行读取/写入,默认为r+。返回一个\SplFileObject,可用于操作临时文件的内容。

  • TempFile::keep(string $newPath)

    将临时文件持久化到指定的路径,返回一个表示新文件的新的\SplFileInfo

  • TempFile::copyTo(resource $stream)

    将文件内容复制到提供的流中。

  • TempFile::release()

    从磁盘删除临时文件。