(PHP >= 8.0.0, PECL zip >= 1.17.0)
ZipArchive::registerProgressCallback β Π Π΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ callback-ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΡΠΈ Π·Π°ΠΊΡΡΡΠΈΠΈ Π°ΡΡ ΠΈΠ²Π°
Π Π΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ callback-ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΡΠΈ Π·Π°ΠΊΡΡΡΠΈΠΈ Π°ΡΡ
ΠΈΠ²Π°.
ratecallbackstate) Π² Π²ΠΈΠ΄Π΅ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ (float) (ΠΎΡ 0,0 Π΄ΠΎ 1,0).
Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true, Π΅ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΠΈΠ»ΠΈ false, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ZIP-Π°ΡΡ ΠΈΠ² php.zip ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΡ ΠΈΠ²Π°ΡΠΈΡ ΡΠ°ΠΉΠ»Π°
$zip = new ZipArchive();
if ($zip->open('php.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE)) {
$zip->addFile(PHP_BINARY, 'php');
$zip->registerProgressCallback(0.05, function ($r) {
printf("%d%%\n", $r * 100);
});
$zip->close();
}ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π€ΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Π°, Π΅ΡΠ»ΠΈ PHP ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ Ρ libzip β₯ 1.6.0.