If you want to exclude a directory from the archive (but include all the other content), the regular expression must take into consideration the whole path of the file, not just the file or directory name relative to the source folder.
As an example, if we want to exclude "nbproject" directory from the archive (and any occurrence of it):
/tmp/myfolder
/nbproject
/something
/something-else
/nbproject
/file1.php
/file2.php
the regex should be:
<?php
$exclude = '/^(?!(.*nbproject))(.*)$/i'; //ignoring the case
?>
A more complete example:
<?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); // as we already obtained a tar.gz
?>
the archive will contain:
/
/something
/something-else
/file1.php
/file2.phpPhar::buildFromDirectory
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Phar::buildFromDirectory
Референца за `phar.buildfromdirectory.php` со подобрена типографија и навигација.
Phar::buildFromDirectory
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::buildFromDirectory — Конструирајте phar архива од датотеките во директориум
= NULL
Забелешка: Се користи за поставување на PHP лоадерот или bootstrap stub на Phar архивата на стандарден лоадер php.ini setting
phar.readonlyОвој метод бара0да биде поставено на за да работи за Phar PharException ќе биде фрлена.
Конструирај phar архива од датотеките во директориум Одлично место за почеток е со читање за.
Параметри
directory-
Пополни phar архива од содржината на директориумот. Опционалниот втор параметар е регуларен израз (pcre) што се користи за исклучување датотеки. Секој назив на датотека што одговара на регуларниот израз ќе биде вклучен, сите други ќе бидат исклучени. За пофина контрола, користете
pattern-
Целосната или релативна патека до директориумот што ги содржи сите датотеки што треба да се додадат во архивата.
Вратени вредности
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0) враќа асоцијативен список што го мапира внатрешниот пат на датотеката до целокупниот пат на датотеката на файловиот систем.
Errors/Exceptions
Овој метод фрла BadMethodCallException Опционален pcre регуларен израз што се користи за филтрирање на списокот со датотеки. Само патеките на датотеките што одговараат на регуларниот израз ќе бидат вклучени во архивата. PharException ако имало грешки при зачувувањето на phar архивата.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.1.0 |
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0) веќе не враќа false.
|
Примери
ако е овозможен колекторот за отпадоци, (PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0) example
<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
// add all files in the project
$phar->buildFromDirectory(dirname(__FILE__) . '/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
$phar2 = new Phar('project2.phar', 0, 'project2.phar');
// add all files in the project, only include php files
$phar2->buildFromDirectory(dirname(__FILE__) . '/project', '/\.php$/');
$phar2->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>