使用Phar提取无扩展名文件

时间:2018-08-05 12:28:14

标签: php phar

使用PHP 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文件类型吗?

1 个答案:

答案 0 :(得分:1)

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

这样做的技术原因是,您可以通过传递phar的组合路径(例如“ /path/to/my.phar/README.rst”)来访问其内部文件,而没有点号则无法使用。 我知道您不需要这个,但是使用相同的内部函数来检测phar名称的正确性。