(PHP >= 8.0.0, PECL zip >= 1.18.0)
ZipArchive::replaceFile β ΠΠ°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°ΠΉΠ» Π² ZIP-Π°ΡΡ ΠΈΠ²Π΅ ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΠΏΡΡΠΈ
$filepath,$index,$start = 0,$length = ZipArchive::LENGTH_TO_END,$flags = 0ΠΠ΅ΡΠΎΠ΄ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°ΠΉΠ» Π² ZIP-Π°ΡΡ ΠΈΠ²Π΅ ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΠΏΡΡΠΈ.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΡΠΌΡΠΌΠΈ ΡΠ»Π΅ΡΠ°ΠΌΠΈ
/ΠΊΠ°ΠΊ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠΌΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ Π² ΠΈΠΌΠ΅Π½Π°Ρ ΡΠ°ΠΉΠ»ΠΎΠ².
filepathindexstartlengthZipArchive::LENGTH_TO_END (0),
ΠΌΠ΅ΡΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π°,
Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ZipArchive::LENGTH_UNCHECKED,
ΠΌΠ΅ΡΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²Π΅ΡΡ ΡΠ°ΠΉΠ» Π½Π°ΡΠΈΠ½Π°Ρ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° start.
flagsZipArchive::FL_ENC_GUESS,
ZipArchive::FL_ENC_UTF_8,
ZipArchive::FL_ENC_CP437,
ZipArchive::FL_OPEN_FILE_NOW.
ΠΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΡΠ°Π½ΠΈΡΠ° Β«ZIP-ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡΒ».
Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true, Π΅ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΠΈΠ»ΠΈ false, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°.
| ΠΠ΅ΡΡΠΈΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
| 8.3.0, PECL-ΠΌΠΎΠ΄ΡΠ»Ρ zip 1.22.1 |
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ZipArchive::FL_OPEN_FILE_NOW.
|
| 8.3.0, PECL-ΠΌΠΎΠ΄ΡΠ»Ρ zip 1.22.2 |
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ:
ZipArchive::LENGTH_TO_END
ΠΈ ZipArchive::LENGTH_UNCHECKED.
|
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΉΠ» ZIP-Π°ΡΡ ΠΈΠ²Π° test.zip ΠΈ Π·Π°ΠΏΠΈΡΡ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 1 Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΡΠ°ΠΉΠ» ΠΏΠΎ ΠΏΡΡΠΈ /path/to/index.txt.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΠΈ Π·Π°ΠΌΠ΅Π½Ρ ΡΠ°ΠΉΠ»Π°
<?php
$zip = new ZipArchive();
if ($zip->open('test.zip') === TRUE) {
$zip->replaceFile('/path/to/index.txt', 1);
$zip->close();
echo 'ΠΠΎΡΠΎΠ²ΠΎ';
} else {
echo 'ΠΡΠΈΠ±ΠΊΠ°';
}
?>