PHP.mk документација

PharData::buildFromIterator

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

phardata.buildfromiterator.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека phardata.buildfromiterator.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
PharData::buildFromIterator

Референца за `phardata.buildfromiterator.php` со подобрена типографија и навигација.

phardata.buildfromiterator.php

PharData::buildFromIterator

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::buildFromIteratorConstruct a tar or zip archive from an iterator

= NULL

public PharData::buildFromIterator(Траверзабилно $iterator, ?string $baseDirectory = null): array

Populate a tar or zip archive from an iterator. Two styles of iterators are supported, iterators that map the filename within the tar/zip to the name of a file on disk, and iterators like DirectoryIterator that return SplFileInfo objects. For iterators that return SplFileInfo objects, the second parameter is required.

Параметри

iterator

Any iterator that either associatively maps tar/zip file to location or returns SplFileInfo objects

baseDirectory

For iterators that return SplFileInfo objects, the portion of each file's full path to remove when adding to the tar/zip archive

Вратени вредности

Пополни tar/zip архива од содржината на директориумот. Опционалниот втор параметар е регуларен израз (pcre) што се користи за исклучување датотеки. Секое име на датотека што одговара на регуларниот израз ќе биде вклучено, сите други ќе бидат исклучени. За пофина контрола, користете враќа асоцијативен список што го мапира внатрешниот пат на датотеката до целокупниот пат на датотеката на файловиот систем.

Errors/Exceptions

Овој метод враќа UnexpectedValueException кога итераторот враќа погрешни вредности, како што е целоброен клуч наместо стринг, а BadMethodCallException кога се поминува итератор базиран на SplFileInfo без а baseDirectory параметар, или а PharException ако имало грешки при зачувувањето на phar архивата.

Дневник на промени

Верзија = NULL
8.1.0 Пополни tar/zip архива од содржината на директориумот. Опционалниот втор параметар е регуларен израз (pcre) што се користи за исклучување датотеки. Секое име на датотека што одговара на регуларниот израз ќе биде вклучено, сите други ќе бидат исклучени. За пофина контрола, користете веќе не враќа false.
8.0.0 baseDirectory сега е null.

Примери

ако е овозможен колекторот за отпадоци, Пополни tar/zip архива од содржината на директориумот. Опционалниот втор параметар е регуларен израз (pcre) што се користи за исклучување датотеки. Секое име на датотека што одговара на регуларниот израз ќе биде вклучено, сите други ќе бидат исклучени. За пофина контрола, користете со SplFileInfo

For most tar/zip archives, the archive will reflect an actual directory layout, and the second style is the most useful. For instance, to create a tar/zip archive containing the files in this sample directory layout:

/path/to/project/
                 config/
                        dist.xml
                        debug.xml
                 lib/
                     file1.php
                     file2.php
                 src/
                     processthing.php
                 www/
                     index.php
                 cli/
                     index.php

This code could be used to add these files to the "project.tar" tar archive:

<?php
$phar
= new PharData('project.tar');
$phar->buildFromIterator(
new
RecursiveIteratorIterator(
new
RecursiveDirectoryIterator('/path/to/project')),
'/path/to/project');
?>

За да го користите OpenSSL поддршката на PHP, исто така мора да го компајлирате PHP project.tar can then be used immediately. Пополни tar/zip архива од содржината на директориумот. Опционалниот втор параметар е регуларен израз (pcre) што се користи за исклучување датотеки. Секое име на датотека што одговара на регуларниот израз ќе биде вклучено, сите други ќе бидат исклучени. За пофина контрола, користете does not set values such as compression, metadata, and this can be done after creating the tar/zip archive.

Како интересен податок, Пополни tar/zip архива од содржината на директориумот. Опционалниот втор параметар е регуларен израз (pcre) што се користи за исклучување датотеки. Секое име на датотека што одговара на регуларниот израз ќе биде вклучено, сите други ќе бидат исклучени. За пофина контрола, користете can also be used to copy the contents of an existing phar, tar or zip archive, as the PharData object descends from DirectoryIterator:

<?php
$phar
= new PharData('project.tar');
$phar->buildFromIterator(
new
RecursiveIteratorIterator(
new
Phar('/path/to/anotherphar.phar')),
'phar:///path/to/anotherphar.phar/path/to/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

пример кој покажува употреба на некои знаменца Пополни tar/zip архива од содржината на директориумот. Опционалниот втор параметар е регуларен израз (pcre) што се користи за исклучување датотеки. Секое име на датотека што одговара на регуларниот израз ќе биде вклучено, сите други ќе бидат исклучени. За пофина контрола, користете со други итератори

Вториот облик на итераторот може да се користи со било кој итератор што враќа мапирање клуч => вредност, како што е а ArrayIterator:

<?php
$phar
= new PharData('project.tar');
$phar->buildFromIterator(
new
ArrayIterator(
array(
'internal/file.php' => dirname(__FILE__) . '/somefile.php',
'another/file.jpg' => fopen('/path/to/bigfile.jpg', 'rb'),
)));
?>

Види Исто така

Белешки од корисници 1 белешка

cbonnissent
пред 11 години
The code in the first exemple doesn't work properly without the flag  FilesystemIterator::SKIP_DOTS in the RecursiveDirectoryIterator (on a linux filesystem).

So, to build a tar with a phar, I do (with two level of iteration here) :

            $pharTar = new \PharData($contentTar.".tar");
            $firstLevelIterator = new \DirectoryIterator($this->inputPath);
            foreach ($firstLevelIterator as $fileInfo) {
                /* @var \SplFileInfo $fileInfo */
                if (in_array($fileInfo->getFilename(), $allowedDirectory)) {
                    $recursiveDirectoryIterator = new \RecursiveDirectoryIterator(
                        $this->inputPath . DIRECTORY_SEPARATOR . $fileInfo->getFilename(), \FilesystemIterator::SKIP_DOTS);
                    $pharTar->buildFromIterator(new \RecursiveIteratorIterator($recursiveDirectoryIterator), $this->inputPath);
                }
            }
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.