【问题标题】:Extract extensionless files using Phar使用 Phar 提取无扩展名文件
【发布时间】:2019-01-12 15:02:23
【问题描述】:

使用 PHPs Phar,我如何指定我拥有的文件类型,当它没有和扩展名时?

我有一个随机生成名称的文件目录,所有文件都是 tar.gz 并且具有相同的结构,我只想提取一个文件 config.xml:

使用:

$phar = new PharData($source_file);
$phar->extractTo($tmp, 'config.xml');

我收到以下错误:

PHP 致命错误:未捕获的 UnexpectedValueException:无法创建 phar '/path/to/fkd20c3nd',无法识别文件扩展名(或组合)或 /path/to/my_script.php:123 中不存在目录

但是,这只是因为文件是在磁盘上随机命名的,即

fkd20c3nd

如果我只是将其重命名为

fkd20c3nd.tar.gz

Phar 工作得很好。

问题是

我如何使用 Phar 提取缺少扩展名的文件,除了先复制它并使用新名称?我可以简单地告诉 Phar 文件类型吗?

【问题讨论】:

    标签: php phar


    【解决方案1】:

    .phar 文件名需要在其名称中间至少包含一个点,以便文件名。

    这样做的技术原因是,您可以通过传递它的组合路径(如“/path/to/my.phar/README.rst”)来访问 phar 中的文件,如果没有点,它将无法工作。 我知道在你的情况下你不需要这个,但相同的内部函数用于检测 phar 名称的正确性。

    【讨论】:

      猜你喜欢
      • 2021-03-04
      • 2020-04-05
      • 2021-09-19
      • 2012-04-05
      • 2017-09-06
      • 1970-01-01
      • 1970-01-01
      • 2016-07-05
      • 1970-01-01
      相关资源
      最近更新 更多