(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)
ZipArchive::extractTo — Извлекает содержимое архива
$pathto
, array|string|null $files
= null
): boolИзвлечение всего архива или его части в указанное место назначения.
Разрешения по умолчанию для извлечённых файлов и каталогов предоставляют максимально широкий доступ. Это можно ограничить установкой текущего umask, который изменяется с помощью umask().
pathto
Место назначение, куда извлекать файлы.
files
Элементы для извлечения. Может принимать как одно значение, так и массив записей.
Возвращает true
в случае успешного выполнения или false
в случае возникновения ошибки.
Пример #1 Извлечь все содержимое
<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$zip->extractTo('/my/destination/dir/');
$zip->close();
echo 'готово';
} else {
echo 'ошибка';
}
?>
Пример #2 Извлечь два элемента
<?php
$zip = new ZipArchive;
$res = $zip->open('test_im.zip');
if ($res === TRUE) {
$zip->extractTo('/my/destination/dir/', array('pear_item.gif', 'testfromfile.php'));
$zip->close();
echo 'готово';
} else {
echo 'ошибка';
}
?>
Замечание:
Файловые системы Windows NTFS не поддерживают некоторые символы в именах файлов, а именно
<|>*?":
. Имена файлов с точкой в конце также не поддерживаются. В отличие от некоторых инструментов извлечения, этот метод не поддерживает замену этих символов на подчёркивание, а вместо этого возникает ошибка при извлечении таких файлов.