【问题标题】:How can I copy a file from the inside of a Phar to the outside如何将文件从 Phar 内部复制到外部
【发布时间】:2016-04-06 16:40:01
【问题描述】:

我想知道是否可以将文件从 Phar 内部复制到外部。

如果合适的话怎么做。

将从同一个 Phar 调用复制函数。

【问题讨论】:

    标签: php phar


    【解决方案1】:

    您可以使用Phar::extractTo 来执行此操作。

    documentation for this 声明如下:

    Phar::extractTo — 将 phar 存档的内容提取到目录

    附示例用法:

    public bool Phar::extractTo ( string $pathto [, string|array $files [, bool $overwrite = false ]] )
    

    注意:您的php.ini 文件必须将phar.readonly 设置为0 才能正常工作。

    文档中的示例用法:

    <?php
    try {
        $phar = new Phar('myphar.phar');
        $phar->extractTo('/full/path'); // extract all files
        $phar->extractTo('/another/path', 'file.txt'); // extract only file.txt
        $phar->extractTo('/this/path',
            array('file1.txt', 'file2.txt')); // extract 2 files only
        $phar->extractTo('/third/path', null, true); // extract all files, and overwrite
    } catch (Exception $e) {
        // handle errors
    }
    ?>
    

    【讨论】:

    • 谢谢,应该有帮助。另外,您认为我可以从要提取的 Phar 中调用此函数吗?
    • 如果我理解你在说什么,你应该能够。为了清楚起见,我编辑了我的答案以包含示例用法
    • 谢谢,最后一个问题,PHP 文档将$pathto 称为存档中要删除的文件的路径。这是一个错误还是没有?我需要能够从 Phar 中多次提取文件,就像使用 ZIPRAR 一样。
    • 我明白了,你原来的问题并没有说明 :) 在这种情况下 extract 是指从 Phar 中取出文件,所以一旦它被移动Phar 中的原始文件将被删除。如果您需要多次“复制”它,可能值得在变量中跟踪原始文件的位置,然后使用另一个 PHP 函数来复制它,例如 php.net/manual/en/function.copy.php
    • 再次感谢,如果是这样,我会设法不将文件存储在 Phar 中
    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2015-08-10
    • 2011-12-26
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    相关资源
    最近更新 更多