如果你想从档案中排除一个目录(但包含其他所有内容),正则表达式必须考虑文件的完整路径,而不仅仅是相对于源文件夹的文件或目录名。
例如,如果我们想从档案中排除 "nbproject" 目录(以及它的任何出现)
/tmp/myfolder
/nbproject
/something
/something-else
/nbproject
/file1.php
/file2.php
正则表达式应该是
<?php
$exclude = '/^(?!(.*nbproject))(.*)$/i'; //忽略大小写
?>
一个更完整的示例
<?php
$archive_file = 'myarchive.tar';
$folder_to_compress = '/tmp/myfolder';
$archive = new PharData($archive_file);
$exclude = '/^(?!(.*nbproject))(.*)$/i';
$archive->buildFromDirectory($folder_to_compress,$exclude);
$archive->compress(Phar::GZ);
unlink($archive_file); // 因为我们已经获得了 tar.gz
?>
档案将包含
/
/something
/something-else
/file1.php
/file2.php