This is a very irritating bug. You can use this to get around it though:
$data = 'some.test.string';
$phar = new PharData('test.tar');
$phar->compress(Phar::GZ, substr($data, strpos($data, '.') + 1));PharData::compress
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
PharData::compress
Референца за `phardata.compress.php` со подобрена типографија и навигација.
PharData::compress
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharData::compress — Ја компресира целата tar/zip архива користејќи Gzip или Bzip2 компресија
= NULL
Ја компресира целата tar/zip архива користејќи Gzip или Bzip2 компресија
За tar архиви, овој метод ја компресира целата архива користејќи gzip компресија или bzip2 компресија. Резултирачката датотека може да се обработи со командата gunzip/bunzip, или да се пристапи директно и транспарентно со Phar екстензијата. zlib За zip архиви, овој метод не успева со исклучок. bzip2 екстензијата мора да биде овозможена за компресирање со gzip компресија,
екстензијата мора да биде овозможена за да се компресира со bzip2 компресија. .gz,
.bz2 Дополнително, овој метод автоматски ја преименува архивата, додавајќи Phar::NONE или отстранувајќи го екстензијата ако е помината
Параметри
compression-
за отстранување на компресијата. Алтернативно, екстензијата на датотеката може да се специфицира со вториот параметар.
Phar::GZ,Phar::BZ2Компресијата мора да биде една одPhar::NONEза додавање компресија, или extension-
за отстранување на компресијата.
.tar.gzor.tar.bz2Стандардно, екстензијата е.tarза компресирање на tar, и
Errors/Exceptions
). Ако повикот не успее, ќе врати BadMethodCallException ако zlib екстензијата не е достапна, или bzip2 екстензијата не е овозможена.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
extension сега е null.
|
Примери
ако е овозможен колекторот за отпадоци, За архиви базирани на tar, овој метод фрла example
<?php
$p = new PharData('/path/to/my.tar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p1 = $p->compress(Phar::GZ); // copies to /path/to/my.tar.gz
$p2 = $p->compress(Phar::BZ2); // copies to /path/to/my.tar.bz2
$p3 = $p2->compress(Phar::NONE); // exception: /path/to/my.tar already exists
?>Види Исто така
- Phar::decompress() - Компресира целата Phar архива користејќи Gzip или Bzip2 компресија
Белешки од корисници 2 забелешки
This method destroys everything after the first dot in your filename and replaces it with the zip extension (.tar.gz, etc)
Example:
<?php
$tarfile = "2.5.0.0-RC1.tar";
$pd = new \PharData($tarfile);
$pd->buildFromDirectory("/path/to/contents");
$pd->compress(\Phar::GZ);
?>
Ends up with a file named "2.tar.gz"