如果您想從封存中排除目錄(但包含所有其他內容),則正規表示式必須考慮檔案的完整路徑,而不僅僅是相對於來源資料夾的檔案或目錄名稱。
例如,如果我們想從封存中排除 "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