WP_CLI
Extractor::extract_zip
Extract a ZIP file to a specific destination.
Метод класса: Extractor{}
Хуков нет.
Возвращает
null. Ничего (null).
Использование
$result = Extractor::extract_zip( $zipfile, $dest );
- $zipfile(строка) (обязательный)
- .
- $dest(строка) (обязательный)
- .
Код Extractor::extract_zip() Extractor::extract zip WP-CLI 2.13.0-alpha
private static function extract_zip( $zipfile, $dest ) {
if ( ! class_exists( 'ZipArchive' ) ) {
throw new Exception( 'Extracting a zip file requires ZipArchive.' );
}
// Ensure the destination folder exists or can be created.
if ( ! self::ensure_dir_exists( $dest ) ) {
throw new Exception( "Could not create folder '{$dest}'." );
}
if ( ! file_exists( $zipfile )
|| ! is_readable( $zipfile )
|| filesize( $zipfile ) <= 0 ) {
throw new Exception( "Invalid zip file '{$zipfile}'." );
}
$zip = new ZipArchive();
$res = $zip->open( $zipfile );
if ( true === $res ) {
$name = Utils\basename( $zipfile );
$tempdir = Utils\get_temp_dir()
. uniqid( 'wp-cli-extract-zipfile-', true )
. "-{$name}";
$zip->extractTo( $tempdir );
$zip->close();
self::copy_overwrite_files(
self::get_first_subfolder( $tempdir ),
$dest
);
self::rmdir( $tempdir );
} else {
throw new Exception(
sprintf(
"ZipArchive failed to unzip '%s': %s.",
$zipfile,
self::zip_error_msg( $res )
)
);
}
}