使用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文件类型吗?
答案 0 :(得分:1)
.phar
文件名必须在其名称中间至少包含一个点,以便文件名。
这样做的技术原因是,您可以通过传递phar的组合路径(例如“ /path/to/my.phar/README.rst”)来访问其内部文件,而没有点号则无法使用。 我知道您不需要这个,但是使用相同的内部函数来检测phar名称的正确性。