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 — Construct a phar archive from the files within a directory
= NULL
Забелешка:
Се користи за поставување на PHP лоадерот или bootstrap stub на Phar архивата на стандарден лоадер php.ini setting
phar.readonlyОвој метод бара0да биде поставено на за да работи за Phar PharException ќе биде фрлена.
Populate a phar archive from directory contents. The optional second parameter is a regular expression (pcre) that is used to exclude files. Any filename that matches the regular expression will be included, all others will be excluded. For more fine-grained control, use Phar::buildFromIterator().
Параметри
directory-
The full or relative path to the directory that contains all files to add to the archive.
pattern-
An optional pcre regular expression that is used to filter the list of files. Only file paths matching the regular expression will be included in the archive.
Вратени вредности
Phar::buildFromDirectory() враќа асоцијативен список што го мапира внатрешниот пат на датотеката до целокупниот пат на датотеката на файловиот систем.
Errors/Exceptions
Овој метод фрла BadMethodCallException when unable to instantiate the internal directory iterators, or a PharException ако имало грешки при зачувувањето на phar архивата.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.1.0 |
Phar::buildFromDirectory() веќе не враќа false.
|
Примери
ако е овозможен колекторот за отпадоци, Phar::buildFromDirectory() 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'));
?>