我PharData
用来创建tar包。它工作正常,但其中包含我不需要的文件夹。如何排除存档中的文件夹?
<?php
$dir = "/foobar/dir";
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($dir)
);
$phar = new PharData('/mytar.tar');
$phar->buildFromIterator($iterator, $dir);
$phar->compress(Phar::GZ);
unlink(realpath('/mytar.tar'));
我要在存档中忽略的文件夹是vendor
(/foobar/dir/vendor
)。
您可以使用CallbackFilterIterator()
过滤不需要的文件和文件夹(尚未测试):
<?php
$dir = "/foobar/dir";
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($dir)
);
$filterIterator = new CallbackFilterIterator($iterator , function ($file) {
return (strpos($file, "vendor/") === false);
});
$phar = new PharData('/mytar.tar');
$phar->buildFromIterator($filterIterator, $dir);
$phar->compress(Phar::GZ);
unlink(realpath('/mytar.tar'));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句